大佬教程收集整理的这篇文章主要介绍了swift – 在Int上使用setValue(value,forKey:key)?类型触发非键值编码兼容方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这对String可选项非常有效,例如
var name:string?
但是,在Int可选项上,它失败,触发我已经为了调试目的而被覆盖的未定义的关键方法:
override func SETVALue(value: AnyObject!,forUndefinedKey key: String!) { println("\(self) this class is not key value coding-compliant for the key \(key)") }
所以例如,一个具有良好整数值的myId键将触发上面的未定义的关键方法。
var myId:Int?
如果我将上述定义更改为非可选项,则一切正常:
var myId:Int = 0
使用myId作为一个可选的,我已经尝试了绝对的所有我可以想象的一切,以铸造,解包,初始化等方式。它只是看不到类作为这些数值的关键值。
我知道这是一个很好的数值。将var声明更改为String?崩溃它在lldb中也看起来很好:
PrinTing description of key: myId key NSObject 0x00007fb8d530ca20 0x00007fb8d530ca20 k NSString "myId" 0x00007fa2aa942f20 value __NSCFnumber * Int64(4348129) 0xb000000004258e13 PrinTing description of value: 4348129 (lldb)
所以,问题是,有没有人在Swift中使用NSKeyValueCoding方法SETVALue(value,forKey:key)在Int类型上成功?
这是完全倒退的,在我看来,类型系统是一个不幸的限制。对于遇到此帖子的任何工程师,请参阅rdar:// 18624182。
以上是大佬教程为你收集整理的swift – 在Int上使用setValue(value,forKey:key)?类型触发非键值编码兼容方法全部内容,希望文章能够帮你解决swift – 在Int上使用setValue(value,forKey:key)?类型触发非键值编码兼容方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。