将 CoreData 生成的 NSManagedObject 属性从 Int32 修改为 Int 是否安全?

Is it safe, to modify the CoreData generated NSManagedObject properties from Int32 to Int?

在设计CoreData时,我们必须明确指定所使用的Integer的位

如果我们选择整数 32,Core Data 生成的 NSManagedObject class 将是

extension NSPlainNote {
    @NSManaged public var colorIndex: Int32
    ...
}

但是,在整个应用程序代码的其余部分,我们都基于 Int 进行操作。因此,必须在 Int32Int

之间执行转换非常麻烦且容易出错

我想知道,将 XCode 生成的 class 修改为

是否安全?
extension NSPlainNote {
    @NSManaged public var colorIndex: Int
    ...
}

如果我们选择这样做,是否会陷入任何潜在的陷阱?

只要您不担心超过 Int32.max,就没有任何陷阱。 SQLite 数据存储中不使用整数大小,因此 Core Data 实际上并不关心您使用的大小。唯一的潜在问题是,如果您真的不希望 Int32 的值太大,因为 Int 允许更大的值。我通常对所有内容都使用“Integer 64”,除非我有某些理由限制代码中可接受的值。