Как вы храните UInt64 в CoreData? - PullRequest
0 голосов
/ 14 июля 2020

Я понимаю, что UInt64 может быть любым значением от: 0 до 18446744073709551615

Мне нужно сохранить идентификатор UInt64 в CoreData, однако я вижу следующие значения:

введите описание изображения здесь

Сначала я пробовал Integer 64, но теперь понимаю, что он имеет диапазон: от -9223372036854775808 до 9223372036854775807

Разработчики обычно хранят UInt64 как String и выполняют преобразования между ними типы? Это лучшая практика?

1 Ответ

2 голосов
/ 14 июля 2020

Вы можете (без потерь) преобразовать между 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)
        }
    }
}
...