Xcode解析缓存策略似乎破坏了我的线程

Xcode解析缓存策略似乎破坏了我的线程,xcode,uitableview,parsing,caching,pffile,Xcode,Uitableview,Parsing,Caching,Pffile,所以我对Xcode和C是相当陌生的,所以这可能是一个愚蠢的问题,但尽管如此,这还是让我三天来一直心烦意乱 好的,我使用Parse来获取和保存数据、图像等。我想显示一个带有PFFile图像的UITableView。这一点我已经做到了 我的问题是滚动性能不好,因为我没有缓存传入的PFFile图像。我不知道如何做到这一点,我所做的任何搜索都不考虑使用parse 下面是我将初始数据放入数组的代码: -void retrieveFromParse{ PFQuery *retrieveContent = [

所以我对Xcode和C是相当陌生的,所以这可能是一个愚蠢的问题,但尽管如此,这还是让我三天来一直心烦意乱

好的,我使用Parse来获取和保存数据、图像等。我想显示一个带有PFFile图像的UITableView。这一点我已经做到了

我的问题是滚动性能不好,因为我没有缓存传入的PFFile图像。我不知道如何做到这一点,我所做的任何搜索都不考虑使用parse

下面是我将初始数据放入数组的代码:

-void retrieveFromParse{

PFQuery *retrieveContent = [PFQuery queryWithClassName:@"NewsFeed"];
[retrieveContent orderByDescending:@"createdAt"];
//[retrieveContent unpinInBackground];
//retrieveContent.cachePolicy = kPFCachePolicyCacheElseNetwork;


[retrieveContent findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {


    if(!error){
        mainArray = [[NSArray alloc] initWithArray:objects];

    }

    [tableView reloadData];


}];
}

然后,此代码将获取图像:

-UITableViewCell*tableView:UITableView*tableView cellForRowAtIndexPath:NSIndexPath*indexPath{

static NSString *CellIdentifier = @"MyCell";

TableCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

cell.profilePicture.layer.cornerRadius = cell.profilePicture.frame.size.height /1.99;
cell.profilePicture.layer.masksToBounds = YES;
cell.profilePicture.layer.borderWidth = 0;


PFObject *imageObject = [mainArray objectAtIndex:indexPath.row];
PFFile *imageFile = [imageObject objectForKey:@"image"];

[imageFile getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
    if(!error){

        NSLog(@"%@",data);

        cell.myImage.image = [UIImage imageWithData:data];

    }

}];


return cell;
}

现在,您将看到我已经注释掉了cachePolicy,因为每次使用它时,线程都会中断

如果有人可以修改我的代码或提供一个使用我的代码的示例项目,以考虑缓存阵列和/或PFFile映像,这将使我不会变得秃顶!:


非常感谢。

您是否尝试过在viewdidload函数中而不是在cellForRowAtIndexPath中检索图像

我以前也遇到过同样的问题,我通过以下方法解决了几乎90%的问题:

1-在viewdidload中,我编写了两个查询:一个用于检索数据,另一个用于检索图像并将其存储在数组中。 2-在cellForRowAtIndexPath中,我刚刚将视图中的图像添加到我的单元格中

这就是我所做的,但不幸的是,我仍然有一个问题。问题在于,检索图像的顺序与检索数据的顺序不同。图像未显示在正确的数据旁边:/。 我正在尝试解决此问题,如果我解决了,我将发布解决方案:

希望我的解决方案能帮助你。祝你好运