自定义原型单元 - 故事板编译错误

时间:2014-03-18 07:23:48

标签: ios iphone objective-c uitableview

我正在我的程序中创建自定义原型单元格,但我无法编译程序。 这就是它的样子(我现在保持它相当标准,只是为了让它工作):

custom cells http://i59.tinypic.com/2w5spko.png

我还创建了一个新的自定义类homeTable,这是homeTable.h的样子:

@interface homeTable : UITableViewCell

@property (weak, nonatomic) IBOutlet UILabel *itemName;
@property (weak, nonatomic) IBOutlet UILabel *itemType;

@end

我已经将tableViewCell设置为自定义类homeTable。

以下是我的masterViewController中的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"KeyCell";


UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

NSDictionary *key = [ownedItems objectAtIndex:indexPath.row];
NSString *name = [key objectForKey:@"name"];
NSString *type = [key objectForKey:@"type"];

cell.itemName.text = name;
cell.itemType.text = type;

return cell;
}

当我尝试运行该程序时,它会引发Interface Builder Storyboard Compilation failed错误。 error http://i62.tinypic.com/5ahy7b.png

我从昨天起就一直坚持这样做,我做错了什么?

1 个答案:

答案 0 :(得分:0)

我可能错过了一个更大的问题,但这里有一些你可能做错的事情。

首先确保您的自定义类和单元格标识符在故事板中正确设置。 右键单击故事板内左侧面板中的tableViewController,查看您的IB连接。您可能已关联稍后删除的内容。你可能会看到一个链接!告诉你有些事情是对的。

然后你可以改变:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

首先,故事板不需要:

if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault      reuseIdentifier:CellIdentifier];
}

因为细胞永远不会是零。故事板处理它,在你看到的断点。

此外,您正在尝试访问自定义属性

@property (weak, nonatomic) IBOutlet UILabel *itemName;
@property (weak, nonatomic) IBOutlet UILabel *itemType;

如果没有指定匹配类,我建议您使用自定义tableViewCell类,如下所示:

homeTable *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

顺便说一句,您的类的名称应该遵循命名约定。 (但这对你的问题没有帮助,只是好的做法)。

如果您仍有问题,我建议您发布有关故事板中发生的更多详情。