ios - 在 Core Data 中存储 UUID

标签 ios core-data uuid

在 Core Data 中存储 UUID(用于全局多系统对象标识)的最佳方法是什么?考虑存储大小和索引功能。

理想情况下,它应该存储为二进制数据(128 位),但是这样做会不会有任何直接的问题?以这种方式存储它比将其存储为 NSString 更有效,但我只想检查将其存储为二进制数据是否存在性能问题。它仍然会被正确地索引为二进制数据吗?在可变宽度字段中存储有效的固定宽度二进制数据是否有任何缺点?

我不太熟悉 SQLite 及其存储/索引机制,所以想寻求一些建议!

最佳答案

从 iOS 11 开始,您可以直接在 Core Data 编辑器中设置 UUID 属性。 UUID 将自动存储为二进制文件。

enter image description here

然后您可以使用 UUID(在 Obj-C 中,NSUUID)获取您的 Core Data 对象。

static func fetch(with identifier: UUID) -> AudioRecord? {
    var record: AudioRecord?
    moc.performAndWait {
        let fetchRequest = AudioRecord.request
        fetchRequest.predicate = NSPredicate(format: "identifier == %@", identifier as CVarArg)
        fetchRequest.fetchLimit = 1
        record = (try? fetchRequest.execute())?.first
    }
    return record
}

关于ios - 在 Core Data 中存储 UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5392541/

相关文章:

ios - 在 TabBarControlller 中替换选项卡的 ViewController

iphone - JSON 和核心数据 :Should I convert JSON into Core Data?

ios - 为IOS中的所有设备创建唯一的UUID?

mysql - 使用 UUID 时,是否也应该使用 AUTO_INCREMENT?

Linux uuidgen - 跨 VM 实例的输出的唯一性

ios - 如何在 iOS 中记录通话?

ios - 直观地改进 iOS 11leadingSwipeActions 的异步操作

ios - 无法获取 CLLocationManager 的权限提示

ios - 在 Swift 中将数组作为字符串存储到核心数据

ios - 具有关系的核心数据模型