来自Parse.com的我的图片没有显示..使用UIImage&带有PFFile的UIImageView

时间:2013-06-09 14:10:02

标签: objective-c uiimageview parse-platform

我在Parse.com上有一个表,允许我存储事件信息。图像,标题,日期和说明。我试图获取图像并将其分配给我开发的自定义单元格中的UIImageView ...数据加载正常,自定义单元格工作,但图像不会更新...我的逻辑代码似乎合法,但话又说回来,我是新的...所以任何帮助都会受到赞赏。

有问题的代码就在我收到评论“// ---事件图片”

之后

我只想弄清楚为什么我的图片没有更新。

谢谢!

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

static NSString *simpleTableIdentifier = @"eventCell";

VFTEventCell *cell = (VFTEventCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

if (cell == nil)
{

    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"EventTableCell" owner:self options:nil];
    cell = [nib objectAtIndex:0];

}

//--- Event Title
cell.title.text = [object objectForKey:@"title"];

//--- Event Date
NSDate *eventDate = [object objectForKey:@"date"];

if(eventDate != NULL)
{

    NSDate *date = [object objectForKey:@"date"];

    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"MM/dd/yyyy"];
    NSString *dateString = [dateFormatter stringFromDate:date];

    cell.date.text = dateString;

}

//--- Event Image
PFFile *eventImage = [object objectForKey:@"image"];

if(eventImage != NULL)
{

    [eventImage getDataInBackgroundWithBlock:^(NSData *imageData, NSError *error) {

        UIImage *thumbnailImage = [UIImage imageWithData:imageData];
        UIImageView *thumbnailImageView = [[UIImageView alloc] initWithImage:thumbnailImage];

        cell.image = thumbnailImageView;

    }];

     }

     return cell;

 }

2 个答案:

答案 0 :(得分:1)

我在帖子发布后不久发现了我的问题...对于任何卡住的人。我只是删除了UIIMageView的创建。考虑到我的XIB文件,我已经创建了imageView ......但是,我使用setImage设置了该对象。

这是代码。

 //--- Event Image
PFFile *eventImage = [object objectForKey:@"image"];

if(eventImage != NULL)
{

    [eventImage getDataInBackgroundWithBlock:^(NSData *imageData, NSError *error)
    {

        UIImage *thumbnailImage = [UIImage imageWithData:imageData];

        [cell.image setImage:thumbnailImage];

    }];

}

答案 1 :(得分:1)

您正尝试在后台线程中设置此项。您只能从主线程访问UIKit。

[eventImage getDataInBackgroundWithBlock:^(NSData *imageData, NSError *error) {

        UIImage *thumbnailImage = [UIImage imageWithData:imageData];
        dispatch_async(dispatch_get_main_queue(), ^{
            cell.imageView.image = thumbnailImage;
        });

    }];

注意:考虑使用PFImageView