2014-10-26 76 views
1

我想从磁盘获取PFFile。我在这里了解到Parse缓存所有PFFiles,因为它们被下载。我现在想知道如何检索缓存。什么是正确的道路。我使用的路径建议here如何从磁盘获取PFFile?

NSString *path = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)[0] stringByAppendingFormat:@"/Caches/Parse/PFFileCache/%@", pffile.name];

NSData *data = [[NSFileManager defaultManager] contentsAtPath:path]; 

数据始终是零。

我使用正确的路径吗? /Caches/Parse/PFFileCache/

+0

为什么不将文件数据保存在您所需的文件的所选位置? – Wain 2014-10-26 16:57:39

+0

因为PFFile不包含数据。我仍然需要请求保存在解析服务器中的文件中的数据。我不是他们如何做的粉丝。 – KKendall 2014-10-27 00:07:17

+0

尝试在保存文件并重现该路径后,找出它们将缓存保存到的路径。 – 2014-10-27 07:57:16

回答

4

从你对问题的描述你应该使用一个稍微不同的过程。最初使用PFFile接口,但随后在文件中存储url,以备日后需要访问文件数据的情况。通过这种方式,您可以直接链接到文件数据,并且可以使用正常连接或会话进行下载。

如果您实际上并不需要PFFile来了解有关下载的任何信息,那么使用REST接口可能更适合您。

另一种替代方法是将最初返回文件信息的请求发送给您,但指示API仅使用缓存的信息。这可以通过在PFQuery上设置cachePolicyCACHE_ONLY来完成。

0

我这个挣扎在斯威夫特了一段时间,发现这个线程,其帮助在这里回答:

let fileURL: String = NSSearchPathForDirectoriesInDomains(.libraryDirectory, .userDomainMask, true)[0] + ("/Caches/Parse/PFFileCache/\(checkedRemoteAsset.name)") 

感谢您KKendall!