【问题标题】:How to get PFFile from disk?如何从磁盘获取 PFFile?
【发布时间】:2014-12-21 21:42:02
【问题描述】:

我想从磁盘获取一个 PFFile。我在这里了解到 Parse 会在下载所有 PFFile 时对其进行缓存。我现在想知道如何检索该缓存。什么是正确的路径。我使用的路径建议here

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

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

数据始终为零。

我是否使用了正确的路径? /Caches/Parse/PFFileCache/

【问题讨论】:

  • 为什么不将文件数据保存在您为所需文件选择的位置?
  • 因为 PFFile 不包含数据。我仍然需要请求保存在解析服务器中的文件中的数据。我不喜欢他们的做法。
  • 在保存文件后尝试找出他们保存缓存的路径并重现该路径。
  • 这里有什么更新吗?你做到了吗?

标签: ios caching parse-platform pffile


【解决方案1】:

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

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

另一种选择是发出最初向您返回文件信息的相同请求,但指示 API 仅使用缓存信息。这是通过在您的PFQuery 上将cachePolicy 设置为CACHE_ONLY 来完成的。

【讨论】:

    【解决方案2】:

    我在 Swift 中为此苦苦挣扎了一段时间,并在这里找到了有助于回答的线程:

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

    感谢 KKendall!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-01
      • 1970-01-01
      • 2020-03-31
      • 2019-03-11
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 2011-12-08
      相关资源
      最近更新 更多