ios – 无法使用类型(Int64,String)的参数列表调用setValue

ios – 无法使用类型(Int64,String)的参数列表调用setValue,第1张

概述我已经在SO和谷歌检查了答案,我很难过. func saveAvailableWord(word: GameWord) { let gw = NSEntityDescription.insertNewObjectForEntityForName("GameWord", inManagedObjectContext: persistence.managedObjectContext!) 我已经在SO和谷歌检查了答案,我很难过.
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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1109633.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存