PFImageView问题:无法在表格视图单元格中显示Parse中的图像

时间:2014-05-31 12:27:07

标签: ios objective-c uitableview parse-platform

我正在尝试在PFImageView中显示UITableViewCell的图片。在另一个视图控制器中我成功完成了它(没有tableview)。如果self.senderId不是nil我查询图像并将其加载到单元格中,但SUCCESS日志没有出现在控制台中,因此我可能错过了查询(在我的其他视图中,我正在使用块内的[self.profilePic loadInBackground]。(但是应用程序正在运行,我没有错误,只是图像视图中没有任何内容。)如果有人,我会很高兴的可以帮我解决这个问题,因为我不知道我的实现有什么问题。

- (void)viewDidLoad
{
    [super viewDidLoad];

    if (self.senderId == nil) {
        NSLog(@"No updates.");
    }
    else {
        PFQuery *queryImage = [PFQuery queryWithClassName:@"UserPicture"];
        [queryImage whereKey:@"user" equalTo:self.senderId];
        [queryImage orderByDescending:@"createdAt"];
        [queryImage getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) {
            if (error) {
                NSLog(@"ERROR.");
            } else {
                PFFile *file = [object objectForKey:@"imageFile"];
                self.senderPicture = file;

                NSLog(@"SUCCESS");
            }
        }];
    }

    [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(reloadTable) userInfo:nil repeats:YES];

    [self setupUIForInput];

}

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


    OutputTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cellThree"];

    cell.textOutput.text = self.senderId;

    if (self.senderId == nil) {
        NSLog(@"No updates.");
    }
    else {
    cell.self.profilePic.file = self.senderPicture;
    [cell.self.profilePic loadInBackground];

    }
        return cell;
}

-(void)reloadTable{
    [tableViewThree reloadData];
}

我也试过这个:

- (void)viewDidLoad
{
    [super viewDidLoad];

    if (self.senderId == nil) {
        NSLog(@"No updates.");
    }
    else {
        PFQuery *queryImage = [PFQuery queryWithClassName:@"UserPicture"];
        [queryImage whereKey:@"user" equalTo:self.senderId];
        [queryImage orderByDescending:@"createdAt"];
        [queryImage getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) {
            if (error) {
                NSLog(@"ERROR.");
            } else {
                self.file = [object objectForKey:@"imageFile"];


                NSLog(@"SUCCESS");
            }
        }];
    }

    [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(reloadTable) userInfo:nil repeats:YES];

    [self setupUIForInput];

}

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


    OutputTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cellThree"];

    cell.textOutput.text = self.senderId;

    if (self.senderId == nil) {
        NSLog(@"No updates");
    }
    else {
    cell.self.profilePic.file = self.file;
    [cell.self.profilePic loadInBackground];

    }
        return cell;
}

1 个答案:

答案 0 :(得分:0)

问题解决了。

问题在于我使用NSString作为self.senderId [queryImage whereKey:@"user" equalTo:self.senderId];而不是PFUser对象[queryImage whereKey:@"user" equalTo:currentuser];