
func saveAvailableWord(word: GameWord) { let gw = NSEntityDescription.insertNewObjectForEntityForname("GameWord",inManagedobjectContext: persistence.managedobjectContext!) as! NSManagedobject let rID = word.rowID gw.setValue(rID,forKey: "rowID") //*** Error line} 上面的代码用于核心数据,只是尝试创建一个对象.但我明白了
“Cannot invoke ‘setValue’ with an argument List of type ‘(Int64,forKey: String)’
在标记的行上. rowID定义为@NSManaged var rowID:Int64,因为它来自sqlite ROWID列.
如果我用简单的数字替换rID变量,则错误消失.我错过了什么?我究竟做错了什么?
感谢您的时间和帮助.
解决方法func setValue(value: AnyObject?,forKey key: String)
期望(可选)对象作为第一个参数.与Int不同,固定
大小整数类型Int64,Int32,…不会自动桥接到
NSNumber对象,因此您必须显式调用
gw.setValue(NSNumber(longLong: rID),forKey: "rowID")
但是如果在管理对象子类中将rowID定义为Int64,
然后你可以简单地分配属性值
gw.rowID = rID
无需键值编码方法.
总结以上是内存溢出为你收集整理的ios – 无法使用类型(Int64,String)的参数列表调用setValue全部内容,希望文章能够帮你解决ios – 无法使用类型(Int64,String)的参数列表调用setValue所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)