创建自定义表格单元格,无法访问属性

时间:2012-08-02 14:47:36

标签: objective-c ios uitableview

重要编辑:我发布了错误的错误代码,就像一个白痴。我发布了错误,因为我之前尝试修复此问题,而不是第一个错误。请不要理我的愚蠢。

我正在Xcode中创建一个Facebook Feed应用程序,而且我在为表创建自定义单元格时遇到了麻烦。我正在尝试将值分配给自定义单元格上的两个UILabel,并且它给出了错误“没有可见的@interface for'JSONFeedItemCell'声明了选择器'nameLabel'”。我的代码如下:

主视图控制器

- (void)viewDidLoad
{
    UINib *nib = [UINib nibWithNibName:@"JSONFeedItemCell" bundle:nil];
    [[self tableView] registerNib:nib forCellReuseIdentifier:@"JSONFeedItemCell"];
    ... // other stuff, not relevant
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    JSONFeedItemCell *cell = [tableView dequeueReusableCellWithIdentifier:
                              @"JSONFeedItemCell"];

    NSDictionary *p = [[[JSONFeedItemStore sharedStore] allItems] 
                              objectAtIndex:[indexPath row]];
    [[cell nameLabel] setText:@"The Name"];
    return cell;
}

细胞分类

#import <Foundation/Foundation.h>

@interface JSONFeedItemCell : UITableViewCell
{

}

@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (weak, nonatomic) IBOutlet UILabel *detailLabel;
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;

@end

如果您需要任何其他信息或代码,请告诉我,我很乐意提供。

2 个答案:

答案 0 :(得分:0)

两件事:你必须确保。

#import "JSONFeedItemCell.h"  //in your mainViewController.h

而且,正如Wolfgang Schreurs建议的那样,对细胞进行强制分析:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    JSONFeedItemCell *cell = (JSONFeedItemCell *)[tableView dequeueReusableCellWithIdentifier:
                              @"JSONFeedItemCell"];

    NSDictionary *p = [[[JSONFeedItemStore sharedStore] allItems] 
                              objectAtIndex:[indexPath row]];
    [[cell nameLabel] setText:@"The Name"];
    return cell;
}
编辑:由于您不使用自定义设置器/ getter,因此您必须合成属性 在JSONFeedItemCell.m

@synthesize imageView;
@synthesize detailLabel;
@synthesize nameLabel;

编译器应警告您,如果您忘记这样做,但使用您从未知道的所有可能的编译器设置。

答案 1 :(得分:-1)

你是否有类似的东西,我称之为圆圈导入?当你有2个相互导入的类时,Xcode会搞砸。 Xcode有时会显示“随机”错误。有时有助于清理和组织项目,并重新启动电脑。我实际上不知道为什么,但它有时会有所帮助。