2

我有一个UITableCell被调用的子类HistoriqueCell。此类有出口(4 个标签)。我有一个UIViewController( HistoriqueViewController) 有一个UITableView. 该表有一个原型单元格,其子类为HistoriqueCell。该原型单元的四个标签链接到HistoriqueCell.h的出口。然而,我所有这些单元的实例总是有未分配的插座。我同事的版本运行良好,而且代码完全相同(我们绕过了 git,我只是从他的 USB 棒加载了他复制的项目,只是为了 100% 确定它不是 git,尽管 git 向我们保证已经没有区别) .

这让我怀疑问题不在于代码,而在于 xcode 配置。我记得我有一个类似的问题,这是由于本地化的故事板。简而言之,法语版本已加载并且没有连接插座,这与我放置插座的英文版本相反。当使用法语故事板时,出口未分配,就像我现在遇到的问题一样,但我的故事板没有本地化。

这是显示我未分配的网点的调试

这是故事板,我在 .m 中也有 @synthesize

细胞使用示例:

我对这个问题真的很沮丧,我似乎找不到问题所在。拜托,如果有人有任何线索,我全神贯注!

4

2 回答 2

1

这是预期的,因为 nib 文件不会自动加载。

您应该通过调用手动加载 nib 文件[[NSBundle mainBundle] loadNibNamed:@"HistoriqueCell" owner:self options:nil]

或者最好使用表格视图注册 nib 对象,如下所示:

UINib *cellNib = [UINib nibWithNibName:@"HistoriqueCell" bundle:nil];
[self.tableView registerNib:cellNib forCellReuseIdentifier:@"HistoriqueCell"];

现在,当您调用dequeueReusableCellWithIdentifier:表格视图时,它将返回一个可重用的单元格,或者创建一个单元格的新实例并为您加载笔尖。并且不再需要此检查:

if (cell == nil) {
    ...
}
于 2013-10-01T02:47:51.080 回答
0

也许您在代码中设置了“单元格”,例如识别 ID,但在 Interface Builder 中的单元格上没有

于 2013-10-01T02:21:02.523 回答