您如何在CoreData中存储UInt64?

时间:2020-07-14 01:36:16

标签: swift string xcode core-data uint64

我的理解是UInt64可以是0到18446744073709551615

之间的任何值。

我需要将UInt64标识符保存到CoreData,但是我看到的值是:

enter image description here

我最初尝试使用Integer 64,但现在我理解的范围是-9223372036854775808至9223372036854775807

开发人员通常将UInt64存储为String,并且在两种类型之间进行转换吗?这是最佳做法吗?

1 个答案:

答案 0 :(得分:2)

您可以(无损)在UInt64Int64之间转换:

// 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)
        }
    }
}
相关问题