我正在我的程序中创建自定义原型单元格,但我无法编译程序。 这就是它的样子(我现在保持它相当标准,只是为了让它工作):
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
我从昨天起就一直坚持这样做,我做错了什么?
答案 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];
顺便说一句,您的类的名称应该遵循命名约定。 (但这对你的问题没有帮助,只是好的做法)。
如果您仍有问题,我建议您发布有关故事板中发生的更多详情。