在 Core Data 中,NSManaged 对象上的 URI 属性类型应该用于啥?

Posted

技术标签:

【中文标题】在 Core Data 中,NSManaged 对象上的 URI 属性类型应该用于啥?【英文标题】:In Core Data, what is the URI property type on the NSManaged object supposed to be used for?在 Core Data 中,NSManaged 对象上的 URI 属性类型应该用于什么? 【发布时间】:2017-10-24 11:36:10 【问题描述】:

    为什么需要 URI 类型? URI 属性的等效 Swift 对象类型是什么? 我会在这个属性中存储一个 URL 吗? 我怀疑我是否希望以这种方式存储另一个托管对象的 URI,但它是否相关?

此外,任何描述用法的 Apple 文档的链接都会有所帮助。

【问题讨论】:

【参考方案1】:

在WWDC 2017 "What's New in Core Data" session 中,其中一张幻灯片表示:

为什么需要 URI 类型?

存储一个 URL。

URI 属性的等效 Swift 对象类型是什么?

NSURL 的 Swift 等效项是 URL

我会在这个属性中存储一个 URL 吗?

这就是类型的目的。

我怀疑我是否希望以这种方式存储另一个托管对象的 URI,但它是否相关?

可能,但可能不是一个好主意。关系会更好。不过,在某些情况下这样做是有意义的。

【讨论】:

【参考方案2】:

您可以使用 URI 来存储图像、音频、视频或任何其他资源的 URL。如果您将设备上的图像存储在文件中,您可以使用文件路径的 URL。

【讨论】:

能否在您的帖子中添加更多信息? "但是,如果您能够将 BLOB 作为资源存储在文件系统上并维护这些资源的链接(例如 URL 或路径),则更好。然后您可以将 BLOB 加载为以及必要时。” developer.apple.com/library/content/documentation/Cocoa/…

以上是关于在 Core Data 中,NSManaged 对象上的 URI 属性类型应该用于啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 Core Data 中只保存部分对象

从 Core Data 中删除对象和切换视图控制器时崩溃

Swift 中带有 Core Data 的 KVO 通知

IOS/Core-Data:添加多对多关系

在 NSManagedObject 类中初始化 @NSManaged 变量?

NSManaged 对象 initWithCoder 错误