Mic*_*all 5 uuid core-data ios
在Core Data中存储UUID(用于全局多系统对象识别)的最佳方法是什么?考虑存储大小和索引功能.
理想情况下,它将存储为二进制数据(128位),但这样做有什么直接问题吗?以大小方式存储它会更有效,而不是作为NSString,但我只是想检查将其存储为二进制数据没有性能问题.它仍然可以正确索引为二进制数据吗?在可变宽度字段中存储有效的固定宽度二进制数据是否有任何缺点?
我对SQLite及其存储/索引机制并不太熟悉,所以想要寻求一些建议!
Jon*_*nny 10
从iOS 11开始,您可以直接在Core Data编辑器中设置UUID属性.UUID将自动存储为二进制.
然后,您可以使用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
}
Run Code Online (Sandbox Code Playgroud)
您计划存储其中多少个?将它们存储为二进制数据可节省约 50%,即二进制数据大约 20 个字节,而字符串大约 40 个字节。所以你说的是每 1000 个 UUID 可以节省 20K,这还不足以让我担心。但是,如果您确实想将它们保存为二进制数据,可以通过将它们存储为 NSData 对象来实现。
| 归档时间: |
|
| 查看次数: |
6425 次 |
| 最近记录: |