将 CoreData 生成的 NSManagedObject 属性从 Int32 修改为 Int 是否安全?
Is it safe, to modify the CoreData generated NSManagedObject properties from Int32 to Int?
在设计CoreData时,我们必须明确指定所使用的Integer的位
- 整数 16
- 整数 32
- 整数 64
如果我们选择整数 32,Core Data 生成的 NSManagedObject class 将是
extension NSPlainNote {
@NSManaged public var colorIndex: Int32
...
}
但是,在整个应用程序代码的其余部分,我们都基于 Int
进行操作。因此,必须在 Int32
和 Int
之间执行转换非常麻烦且容易出错
我想知道,将 XCode 生成的 class 修改为
是否安全?
extension NSPlainNote {
@NSManaged public var colorIndex: Int
...
}
如果我们选择这样做,是否会陷入任何潜在的陷阱?
只要您不担心超过 Int32.max
,就没有任何陷阱。 SQLite 数据存储中不使用整数大小,因此 Core Data 实际上并不关心您使用的大小。唯一的潜在问题是,如果您真的不希望 Int32
的值太大,因为 Int
允许更大的值。我通常对所有内容都使用“Integer 64”,除非我有某些理由限制代码中可接受的值。
在设计CoreData时,我们必须明确指定所使用的Integer的位
- 整数 16
- 整数 32
- 整数 64
如果我们选择整数 32,Core Data 生成的 NSManagedObject class 将是
extension NSPlainNote {
@NSManaged public var colorIndex: Int32
...
}
但是,在整个应用程序代码的其余部分,我们都基于 Int
进行操作。因此,必须在 Int32
和 Int
我想知道,将 XCode 生成的 class 修改为
是否安全?extension NSPlainNote {
@NSManaged public var colorIndex: Int
...
}
如果我们选择这样做,是否会陷入任何潜在的陷阱?
只要您不担心超过 Int32.max
,就没有任何陷阱。 SQLite 数据存储中不使用整数大小,因此 Core Data 实际上并不关心您使用的大小。唯一的潜在问题是,如果您真的不希望 Int32
的值太大,因为 Int
允许更大的值。我通常对所有内容都使用“Integer 64”,除非我有某些理由限制代码中可接受的值。