重要编辑:我发布了错误的错误代码,就像一个白痴。我发布了错误,因为我之前尝试修复此问题,而不是第一个错误。请不要理我的愚蠢。
我正在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
如果您需要任何其他信息或代码,请告诉我,我很乐意提供。
答案 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有时会显示“随机”错误。有时有助于清理和组织项目,并重新启动电脑。我实际上不知道为什么,但它有时会有所帮助。