草庐IT

swift-keypath

全部标签

swift - 对象是 nil,尽管它是在 init 中设置的

我有一个名为navigator的对象,我在init中设置了它。我打开它以确保它已设置好。但是,当IBAction函数linkBut​​tonClicked被调用并尝试使用导航器时,我得到一个nil异常。为什么?classHomeCollectionViewCell:UICollectionViewCell{letappDelegate:AppDelegate!letnavigator:Navigator!@IBOutletweakvarlinkButton:UIButton!vardestinationView:String?varparentViewController:UIView

iOS Swift 3 - 如何保存可以拉到任何 View Controller 的数据

我正在制作一款游戏,其中每个技能都有自己的水平和经验,具体取决于玩家对它们的训练程度。它还在银行中存储了诸如金钱和元素之类的东西。我应该在哪里保存这些项目,以便您可以从任何ViewController访问它,以便在您关闭和打开游戏时保存它?我已经决定尝试使用UserDefualts,但我不确定我做错了什么。有人可以解释一下我是否想要一个名为硬币的变量并有一个标签显示这些硬币从0开始,每次单击按钮时硬币都会增加1。然后还可以关闭游戏或女巫观看次数和代币是否与关闭前保持一致? 最佳答案 首先你应该定义游戏数据是否敏感。如果不敏感,请尝试

swift - `?` 在 Xcode 8.3.2 的 Swift 编译器中导致段错误

我有这行Swift可以毫无问题地编译letlayoutSettings=tryLayoutSettings.deserialize(params:layoutSettingsParamsasDictionary)从Xcode8.3.2开始我得到错误SwiftCompilerErrorCommandfailedduetosignal:Segmentationfault:11如果我删除代码行末尾的?,它可以毫无问题地编译。如何在不使编译器崩溃的情况下使用可空类型? 最佳答案 AnyObject和AnyObject?不是一回事。AnyOb

Swift:将 AnyObject 转换为 Float 失败

letjson=["left":18,"deadline":"May10","progress":0.6]as[String:AnyObject]letss=json["progress"]as?Floatletsss=json["progress"]as?Doubleprint("ss=\(ss)\nsss=\(sss)")我不知道为什么ss显示nil而sss显示0.599999998。为什么强制转换为Float会得到nil?你们有什么方法可以让我得到正确的结果吗? 最佳答案 0.6是一个Double文字值。因此,您不能将其转换为

swift - 如何比较两个没有原始类型的枚举实例?

这个问题在这里已经有了答案:HowtotestequalityofSwiftenumswithassociatedvalues(14个答案)关闭5年前。给定:enumExample{caseStep1caseStep2(data:String)}和:leta:Example=.Step1letb:Example=.Step2(data:"hi")我如何使它工作?print(a==b)//ERROR:Binaryoperator'=='cannotbeappliedtotwo'Example'operands请注意,我不能放弃自定义枚举(它不能包含原始值)

ios - Swift 中的时间戳

我正在使用这段代码快速确定当前时间letcurrentDate=Date().timeIntervalSince1970*1000结果是这样的1493199752604.24获取的值是毫秒对吧?值里面的.是什么?我需要确定两个这样的日期之间的时差是否等于或大于2小时。if(currentDate-oldDate>=7200000){//dosomething}这段代码正确吗? 最佳答案 尝试利用Swift的更多优势。尝试使用dateComponents获取时间差。letcalendar=NSCalendar.currentletho

swift - 使用信号量的 XCTest 单异步设置

我正致力于通过Alamofire测试API。我需要对服务器进行一次调用以准备集成测试。完成后,我就可以开始运行测试了。每次测试都会运行通常的overridesetUp(),所以我不想那样做。因此,我选择覆盖classsetUp(),如下所述:https://developer.apple.com/reference/xctest/xctestcase一切都很好,但是现在,我不能再使用标准的waitForExpectations。(在classoverridesetUp())我收到几个编译器错误,告诉我我不再调用相同的waitForExpectations因为我在类方法中,而不是测试用例

iphone - 如何在 Swift 中以编程方式将联系人设置为最喜欢的联系人?

我正在开发一个应用程序,我需要从设备中获取所有联系人,然后在按下按钮时将其设置为最喜欢的联系人。我可以在iOS9和10中使用[CNContact]获取所有联系人。但不知道如何将其设置为收藏联系人。我们可以将CNContact设置为常用联系人吗?我们可以更改CNContact吗? 最佳答案 您可以将收藏夹存储到RealmDB。像这样,classFavouriteList:Object{letfavouriteList:List=List()}classFavouriteContact:Object{dynamicvaridentifi

swift - 当我之前打开它后返回到 View Controller 时,它不会为标签设置动画 Xcode Swift

当我打开我的应用程序时,我有一个从屏幕外动画的标签。当我第一次打开ViewController时,它起作用了。但是,当我转到另一个ViewController,然后返回到初始ViewController时,这个标签将只在那里,而不是动画。levelsLabel.center=CGPoint(x:levelsLabel.center.x-500,y:levelsLabel.center.y)UIView.animate(withDuration:2){self.levelsLabel.center=CGPoint(x:self.levelsLabel.center.x+500,y:sel

ios - 未指定数据类型时 Swift 变量为 nil

下一行中的jsonString为nilletjsonString=try?String(contentsOf:URL(fileURLWithPath:currentMedia?.rawDataFile??""))当在下面的代码中指定数据类型时,jsonString不是nil而是有一个值:letjsonString:String=try?String(contentsOf:URL(fileURLWithPath:currentMedia?.rawDataFile??""))虽然问题出在第一行try?String(contentsOf:URL(fileURLWithPath:current