我一直在主要使用iPhone 6、6 plus和iPad进行测试。今天刚刚在iPhone 5模拟器上试用了我的应用程序,却收到Core Data错误。
CoreData:错误:属性'setId:'是类'AppName.EntityName'上的标量类型,与它的Entity属性的标量类型不匹配。动态生成的访问器不支持隐式类型强制。无法为其生成setter方法
现在,我的应用程序中没有'setId'对象,但是该实体当然有一个'ID'对象,该对象设置为int。
class Entity: NSManagedObject {
@NSManaged var id: Int
}
在核心数据模型中,属性类型设置为Integer64。这可能是我的问题,因为我在不知道最好的情况下选择了它。我在模型和类中还有其他属性,但是它们都是字符串。
寻找修复程序和解释为什么只在某些设备上发生这种情况,所以我可以学习!
如果Core Data类型为Integer 64,则应将属性声明为Int64
(或让Xcode创建托管对象子类)。
Int
可以是32位或64位,具体取决于处理器体系结构。
或者,将属性定义为,NSNumber*
而不是标量属性。当然,您必须注意,在32位平台上,值不能超过的范围Int
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句