如何在 CoreData 中存储 UInt64?

Jos*_*art 2 string xcode core-data uint64 swift

我的理解是 UInt64 可以是从 0 到 18446744073709551615 的任何值

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

在此输入图像描述

我最初尝试过 Integer 64,但现在我知道它的范围是:-9223372036854775808 到 9223372036854775807

开发人员通常是否将 UInt64 存储为字符串并在两种类型之间进行转换?这是最佳实践吗?

Mar*_*n R 5

您可以(无损)在UInt64和之间进行转换Int64

// Set:
obj.int64Property = Int64(bitPattern: uint64Value)

// Get:
let uint64Value = UInt64(bitPattern: obj.int64Property)
Run Code Online (Sandbox Code Playgroud)

您可以定义uint64Value为托管对象类的计算属性来自动执行转换:

@objc(MyEntity)
public class MyEntity: NSManagedObject {
    
    public var uint64Property: UInt64 {
        get {
            return UInt64(bitPattern: int64Property)
        }
        set {
            int64Property = Int64(bitPattern: newValue)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)