1

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

我正在 Xcode 中创建 Facebook Feed 应用程序,但在为表格创建自定义单元格时遇到了麻烦。我正在尝试将值分配给自定义单元格上的两个 UILabel,它给了我错误“'JSONFeedItemCell' 没有可见的@interface 声明选择器'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;

@结尾

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

4

2 回答 2

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;
}

编辑:由于您不使用自定义设置器/获取器,因此您必须在JSONFeedItemCell.m

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

如果您忘记这样做,编译器应该会警告您,但所有可能的编译器设置都是您永远不知道的。

于 2012-08-02T15:27:34.253 回答
-1

你可能有类似的东西,我称之为圆形导入?当您有 2 个相互导入的类时,Xcode 会变得一团糟。Xcode 有时会显示像这样的“随机”错误。有时有助于清理和组织项目,并重新启动电脑。我实际上不知道为什么,但有时它会有所帮助。

于 2012-08-02T17:06:29.417 回答