ios – 仅在某些设备上的核心数据标量错误

我一直在测试主要使用iPhone 6,6加和iPad.刚刚在iPhone 5模拟器上试用了我的应用程序,并获得了Core Data错误.

CoreData: error: Property ‘setId:’ is a scalar type on class ‘AppName.EntityName’ that does not match its Entity’s property’s scalar type. Dynamically generated accessors do not support implicit type coercion. Cannot generate a setter method for it

现在,我的应用程序中没有’setId’对象,但是当然这个实体有一个’ID’对象,它被设置为一个int.

class Entity: NSManagedobject {
    @NSManaged var id: Int
}

在Core Data模型中,属性类型设置为integer64.这可能是我的问题,因为我选择了,不知道什么是最好的.我在模型和类中有其他属性,但它们都是字符串.

寻找一个修复和解释为什么这只发生在一些设备上,所以我可以学习!

解决方法

如果Core Data类型为Integer 64,那么您应该将属性声明为Int64(或者让Xcode创建托管对象子类).

Int可以是32位或64位,具体取决于处理器架构.

或者,将属性定义为NSNumber *,而不是标量属性.当然,您必须注意在32位平台上的值不会超出Int的范围.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...