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

前端之家收集整理的这篇文章主要介绍了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的范围.

猜你在找的iOS相关文章