我正在尝试在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;
}
答案 0 :(得分:0)
问题解决了。
问题在于我使用NSString作为self.senderId [queryImage whereKey:@"user" equalTo:self.senderId];
而不是PFUser对象[queryImage whereKey:@"user" equalTo:currentuser];
。