Xcode Parse cachePolicy似乎打破了我的主题

时间:2015-01-16 12:36:19

标签: xcode uitableview parsing caching pffile

所以我对Xcode和C#来说相当新,所以这可能是一个愚蠢的问题,但是现在让我把头发撕掉3天了。

好的,所以我使用Parse来获取和保存数据,图像等。我想用PFFile图像显示UITableView。这一点我管理了。

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

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

- (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图像,这将使我免于秃顶! :)

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

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

之前我遇到过同样的问题,我通过以下方式解决了近90%的问题:

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

这就是我所做的,但不幸的是我仍然遇到了问题。问题是不能以检索数据的相同顺序检索图像“图像不显示在正确的数据旁边:/”。 我正在尝试解决这个问题,如果我这样做,我会发布解决方案:)

希望我的解决方案能为您提供帮助。祝你好运;)