【问题标题】:Downloading images from Parse, and not getting the newest version从 Parse 下载图像,但没有获得最新版本
【发布时间】:2015-04-14 17:55:19
【问题描述】:

我在这里有一个非常奇怪的问题,我把头发拉了过来。我正在尝试从解析下载用户个人资料图片。我有一个带有消息列表的 UITableView,每个单元格都有用户名和他们的个人资料图片。我正在使用此代码下载:

NSLog(@"download called");
PFFile *userImageFile = userObject[@"profilePic"];
[userImageFile getDataInBackgroundWithBlock:^(NSData *imageData, NSError *error) {

    if (!error) {
        UIImage *image = [UIImage imageWithData:imageData];
        [self.images setObject:image forKey:userObject[@"username"]];
        cell.profilePic.image = image;
        NSLog(@"added image for %@", userObject[@"username"]);
    }
    else {
        NSLog(@"error and couldnt add for %@ is %@", userObject[@"username"], error);
    }     
}];

由于某种原因,它正在下载的图像是该图像的旧版本。我已尝试多次更改特定用户的个人资料图片,但它始终显示相同的原始图片。我在不同的视图控制器中有一个相同的下载配置文件图片方法,它会下载正确的。不知道这里发生了什么。有没有人遇到过这个?有人可以给我一些指示我可能做错了什么吗?

谢谢

【问题讨论】:

  • Parse 有一个缓存,如果你没有明确告诉它忽略它,它会从那里加载数据
  • 缓存是否存储在应用程序的文档文件夹中?我也试过删除一个应用程序并重新安装,所以没有缓存,它仍然下载错误的图像。
  • 如果图像文件在 db 上正确,您能否检查解析核心?单击该字段,它会显示图像。如果不是,则问题出在文件保存中,否则只需尝试获取对象。

标签: ios parse-platform


【解决方案1】:

您知道解析缓存机制吗? 您可能已将缓存设置为“仅缓存”? 而且pffile指的是单一的图像文件,我猜你应该寻找的代码比块之前,你如何得到pffile?也许您必须先使用 fetch 更新“userobject”,然后才能实际检索该值(将其视为过时的指针)?

【讨论】:

  • 我不知道。缓存是否存储在应用的文档文件夹中?
  • 我不知道,但出于调试原因,如果您删除应用程序,缓存也会被消除(根据个人经验,我没有证据)
  • 顺便说一句,我会先尝试[userObject fetch]
  • 在获取 PFFile 的数据之前更新用户对象可能是这里的解决方案
  • cache 默认设置为使用kPFCachePolicyIgnoreCache 忽略它,所以在这方面你真的无事可做。您不必告诉它要像前面所说的那样专门忽略它,它会自动执行此操作。问题出在其他地方@KexAri
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-07
  • 2016-11-11
  • 1970-01-01
  • 1970-01-01
  • 2016-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多