0

创建自定义单元格时,我面临以下异常。

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<MasterTableView 0xb612b30> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key address.'

我正在使用的委托函数如下:

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

cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) 
{

    NSArray *top=[[NSBundle mainBundle]loadNibNamed:@"CustomCell" owner:self options:nil];// on this line program received SIGABRT

    for (id current in top) {
        if ([current isKindOfClass:[UITableViewCell class]]) {
            cell=(CustomCell *)current;
            break;
        }
    }

}

// Configure the cell...
cell.name.text=@"name";
cell.address.text=@"Address";

return cell;
}

除此之外,我还做了以下步骤:

  1. CustomCell.xib我已经给了to的文件所有者MasterTableView.h
  2. 我已将自定义单元格的出口提供给MasterTableView.h
  3. 我已经给这两个UILabels提供了出口CustomCell.h
  4. Cell在 IB 中作为 Cell Identifier给出

我在 Dropbox 中共享了整个项目,可在以下链接中找到。你也可以检查那个。我想知道它有什么问题。。

下载链接

请告诉我缺少的步骤..提前谢谢你。

PS :- 我在我的项目中使用了 CoreData。没有核心数据,这些步骤给了我正确的期望输出,但在这个项目中没有。我已经检查了默认单元格。它工作得很好。

4

3 回答 3

1

在您的自定义单元格 xib 中,将单元格对象类型更改为Customcell,将 FileOwner 类型更改为NSObject. 然后设置单元格对象的出口。

于 2012-09-03T14:07:59.860 回答
1

我在一个示例项目中编译并运行了代码,它完全没有问题。如前所述,确保您已在 Interface builder 中连接了所有内容!

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

    CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {

        NSArray *top = [[NSBundle mainBundle]loadNibNamed:@"CustomCell" owner:self options:nil];

        for (id current in top) {
            if ([current isKindOfClass:[UITableViewCell class]]) {
                cell=(CustomCell *)current;
                break;
            }
        }
    }

    cell.title.text = @"Custom cell labels";

    return cell;
}

编辑:

您在 Interface Builder 中连接了两次 IBOutlets,我附上了图片供您参考。他们不应该连接到文件的所有者,从文件的所有者中删除连接。

您还会注意到行的大小不正确,您必须在表格视图中指定行大小。

在此处输入图像描述

于 2012-09-03T14:31:30.300 回答
0

Check whether you have set the class of your CustomCell from properties. enter image description here

于 2012-09-03T14:18:32.010 回答