2

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

4

1 回答 1

2

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

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

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

于 2012-12-19T03:36:40.480 回答