我将一个MP4文件作为“允许外部存储”的NSData属性存储在CoreData中。如何获取此数据的路径字符串或NSURL?另外,如果mp4文件不到1MB并在内部存储,会发生什么情况?那么它会不会无法提供一条路径呢?有没有什么简单的方法来判断数据是存储在外部还是内部?
发布于 2012-12-19 11:36:40
核心数据不提供任何获取路径的方法。正如您所注意到的,它甚至不能保证是a path,因为它可能没有使用外部文件。它被设计成不需要知道路径是否存在或它可能是什么,而API反映了这种态度。
非官方的找到文件是可能的。如果数据存储名为Foo.sqlite,则外部文件(如果有)将位于同一文件夹中名为.Foo_SUPPORT/_EXTERNAL_DATA/的子目录中。但实际的文件名只是UUID,所以找出哪个文件名对应哪个托管对象仍然不是自动的。您所能做的最好的事情可能是跟踪托管对象的修改日期,然后查找具有相同mod日期的文件。
如果出于某种原因您确实需要获取该文件,则需要使用您自己的外部引用代码。这很简单,真的。
https://stackoverflow.com/questions/13936741
复制相似问题