objective-c - MP4作为外部数据引用存储在CoreData中...如何获取路径?

标签 objective-c core-data ios6 nsdata mp4

我将 MP4 文件存储在 CoreData 中作为“允许外部存储”NSData 属性。如何获取此数据的路径字符串或 NSURL?另外,如果 mp4 文件小于 1 MB 并且内部存储会发生什么?那会不会无法提供路径呢?有什么简单的方法可以判断数据是存储在外部还是内部?

最佳答案

Core Data 不提供任何获取路径的方法。正如您所注意到的,它甚至不能保证存在存在路径,因为它可能没有使用外部文件。它被设计为您不需要知道路径是否存在或可能是什么,并且 API 反射(reflect)了这种态度。

非官方可以找到这些文件。如果您的数据存储名为 Foo.sqlite,则外部文件(如果有)将位于名为 .Foo_SUPPORT/_EXTERNAL_DATA/ 的同一文件夹中的子目录中。但实际的文件名只是 UUID,因此仍然无法自动确定哪个文件名与哪个托管对象对应。您能做的最好的事情可能就是跟踪托管对象的修改日期,然后查找具有相同修改日期的文件。

如果您出于某种原因确实需要获取该文件,则需要滚动自己的外部引用代码。这真的很简单。

关于objective-c - MP4作为外部数据引用存储在CoreData中...如何获取路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13936741/

相关文章:

ios - 将数据从一页获取到另一页

ios - 无法在 iOS 中找到图像的 DPI

iphone - 带有当前时间的 UILabel

ipad - cache.manifest/离线使用Web应用程序的异常行为已保存到ipad ios6的主屏幕上

ios - Obj-c - 从 NSDictionary 获取值时应用程序崩溃?

iphone - 将日期/时间存储到核心数据中的最佳方法

ios - 使用Core Data轻量级迁移和UIManagedDocument“找不到源存储的模型”

iOS 核心数据 : Where to set up and load the database?

objective-c - 如何在 UICollection 补充 View 中使用 UIButton?

ios - 更改 UIRefreshControl 需要的路径去 UIControlEventValueChanged