来自XIB的新自定义单元格导致密钥值符合密钥...?

时间:2011-11-16 02:49:19

标签: iphone ios uitableview

我使用XIB创建了一个自定义表格视图单元格:

enter image description here

我还将XIB文件与我的自定义UITableView单元链接起来。

但现在当我尝试使用以下代码加载- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath中的单元格时:

MyCustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
    if (cell == nil) {
        // Load the top-level objects from the custom cell XIB.
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomTableViewCell" owner:cell options:nil];
        // Grab a pointer to the first object (presumably the custom cell, as that's all the XIB should contain).
        cell = [topLevelObjects objectAtIndex:1];
    }

我会得到[<NSObject 0x8a5b970> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key hitMeButton.

我一直在网上搜索,其中一个可能的原因可能是XIB没有链接到IBOutlet,我已经检查过,但似乎并非如此。

2 个答案:

答案 0 :(得分:32)

真正的问题是你如何联系网点。 您必须将TableViewCell中的Outlets链接到单元格中的标签(您可能在文件所有者处链接了标签)

这里有一些更具说明性的图片:

这没关系 enter image description here



这是错误的 enter image description here

答案 1 :(得分:-3)

我刚刚解决了这个问题,但我不确定这是否是最恰当的方式。

if (cell == nil) {

MyCustomTableViewCell *aCell = [[MyCustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];

 NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomTableViewCell" owner:aCell options:nil];

cell = [topLevelObjects objectAtIndex:0];

}