SwiftData:使用 ObjectID URIRepresentation 加载 CoreData 对象?

Doo*_*Man 7 ios swift swift-data

我正在替换 iOS 应用程序中的一些 CoreData 代码以使用新的 SwiftData 框架。在我的原始代码中,我将 CoreData 对象 URI 保存在 UserDefaults 中作为快速书签。这使我能够轻松地直接获取我需要的特定对象。

例如

model.objectID().uriRepresentation().absoluteString
Run Code Online (Sandbox Code Playgroud)

在研究 SwiftData 解决方案时,我在 SwiftData 模型上发现了这个objectID属性,它的类型是PersistentIdentifier,它似乎可以满足我的要求。但似乎没有一种直接的方法来为这个值添加书签。PersistentIdentifier符合“Codeable”,我可以通过将其转换为 来保存到 UserDeafaults Data,但是当我尝试这样做时,返回的值不包含任何必要的数据,只是一个空值。这是在idobjectIDModel 对象进行编码时创建的。

"{\"implementation\":{}}"
Run Code Online (Sandbox Code Playgroud)

如何使用新的 SwiftData 框架来实现这一目标?

Doo*_*Man 0

看起来 Xcode 15 Beta 5 Codable 正在按预期工作。