我的理解是UInt64可以是0到18446744073709551615
之间的任何值。我需要将UInt64标识符保存到CoreData,但是我看到的值是:
我最初尝试使用Integer 64,但现在我理解的范围是-9223372036854775808至9223372036854775807
开发人员通常将UInt64存储为String,并且在两种类型之间进行转换吗?这是最佳做法吗?
答案 0 :(得分:2)
您可以(无损)在UInt64
和Int64
之间转换:
// Set:
obj.int64Property = Int64(bitPattern: uint64Value)
// Get:
let uint64Value = UInt64(bitPattern: obj.int64Property)
您可以将uint64Value
定义为托管对象类的计算属性,以自动执行转换:
@objc(MyEntity)
public class MyEntity: NSManagedObject {
public var uint64Property: UInt64 {
get {
return UInt64(bitPattern: int64Property)
}
set {
int64Property = Int64(bitPattern: newValue)
}
}
}