我有这段代码在XCode6(
Swift 1.2)中运行正常,但不适用于Swift 2:
class func findOrCreate<T: NSManagedObject>(type: T.Type,attribute: String,value: AnyObject?) -> T { if let object = T.MR_findFirstByAttribute(attribute,withValue: value) as? T { return object } else { let object = T.MR_createEntity() as! T if let value:AnyObject = value { object.setValue(value,forKey: attribute) } return object } }
错误显示在包含object.setValue的行上,并带有以下消息:
模糊地使用’setValue(_:forKey :)’
我认为它不承认NSManagedObject类型的对象,但我不是100%肯定,任何线索为什么这种情况非常感激.
我在Apple论坛上发布了同样的问题,并得到了解决此问题的解决方法:
let object = T.MR_createEntity() as! NSManagedObject if let value:AnyObject = value { object.setValue(value,forKey: attribute) } return object as! T
这按预期工作.我也向Apple提交了一份错误报告.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。