UITableviewCell子类中的PFQuery并在cellForRowAtIndex中调用它:

时间:2015-04-03 21:01:17

标签: ios objective-c uitableview parse-platform

我在视图控制器cellForRowAtIndex:中有此查询:

        PFQuery *query = [PFUser query];
        [query whereKey:@"objectId" equalTo:object[@"creator"]];
        [query getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) {

            if (object) {

                PFFile *file = [object objectForKey:@"profileImg"];

                cell.avatar.file = file;
                [cell.avatar loadInBackground];

            }
        }];

我想将此方法移到我的自定义单元格类中,是否可能以某种方式?我试图将它(经过一些修改)移动到我的单元格的.m文件中,但是我无法从中创建一个类方法。

-(void) setupAvatar:(PFUser *)object {

          PFQuery *query = [PFUser query];
            [query whereKey:@"objectId" equalTo:object[@"creator"]];
            [query getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) {

                if (object) {

                    PFFile *file = [object objectForKey:@"profileImg"];

                    self.avatar.file = file;
                    [self.avatar loadInBackground];

                }
            }];

}

我该如何解决这个问题?在单元格的课堂上进行查询是完全错误的还是没问题,但我做错了吗?如果有人能以正确的方式向我展示,我真的很感激。

1 个答案:

答案 0 :(得分:0)

如果你可以提供帮助,我会尽量避免在细胞子类中做这项工作,因为它打破了MVC模式。没有充分的理由让人知道Parse,这是一个模特的工作。如果可能的话,我会尝试为您的表视图控制器充实数据源类,并为您的图像询问。我也非常担心在cellForRowAtIndexPath中进行这样的调用,特别是因为它不是同步的。我打赌你会遇到一些非常奇怪的细胞再利用错误,因为这种方法会经常运行,并且不能保证知道什么时候会返回 - 你的细胞图像可能会自己开始改变并展示一个很多其他奇怪的行为。