自定义TableViewCell的UIImageView出口nil

Doa*_*ong 1 objective-c uitableview uiimageview ios

UITableViewCell在情节提要上创建了一个原型单元,然后将其链接到ImageViewCell继承自的单元UITableViewCell。我IBOutlet为原型单元上的每个控件创建了一个控件,其中包含一些UILabelUIImageView。当我尝试将数据填充到这些控件中时,UILabel效果很好,但UIImageView始终为零,并且不会显示任何图像。码:

@interface ImageTableViewCell : UITableViewCell
@property (readonly, nonatomic, strong) Post *post;

// set value for post
- (void)setPost:(Post *)post;
@end

@implementation ImageTableViewCell
{
    __weak IBOutlet UILabel *titleLabel;
    __weak IBOutlet UILabel *descriptionLabel;
    __weak IBOutlet UILabel *pointLabel;
    __weak IBOutlet UIImageView *imageView;

}
- (void)setPost:(Post *)post
{
    _post = post;

    // update ui
    titleLabel.text = self.post.title;
    descriptionLabel.text = self.post.descriptions;
    pointLabel.text = self.post.point;    

    [imageView setImage:[UIImage imageNamed:@"mylocalimage.png"]];

}
@end
Run Code Online (Sandbox Code Playgroud)

在我的控制器中:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(feedData == nil || [feedData count] == 0)
    {
        return nil;
    }

    NSDictionary *postData = [feedData objectAtIndex:indexPath.row];

    // prepare data to pass to table view cell
    Post *post = [[Post alloc] init];    
    post.title = [postData objectForKey:@"title"];
    post.descriptions = [postData objectForKey:@"description"];
    post.total_likes = [postData objectForKey:@"total_likes"];
    post.total_shares = [postData objectForKey:@"total_shares"];
    post.image = [postData objectForKey:@"image"];

    ImageTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ImageCell"];;
    if(cell == nil)
    {
        cell = [[ImageTableViewCell alloc] init];
    }

    [cell setPost:post];


    return cell;
}
Run Code Online (Sandbox Code Playgroud)

所有UILabel工作正常,但UIImageView从未设置过图像,我尝试使用本地图像设置它,但仍无法正常工作,经过一番调查,我发现在为设置图像时imageView,它始终为零。那么我该如何克服呢?

更新资料

连结图片在此处输入图片说明

Pet*_*tar 5

尝试将您的变量名称更改为UIImageView“ imageView”以外的名称。这样做的原因是它UITableViewCell本身具有一个名为“ imageView”的属性。因此,当您设置属性时,它必须尝试设置未链接到插座的超类的属性,因此不会产生结果。