我将 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/