我有一个名为UITableCell
的{{1}}子类。这个类有出口(4个标签)。我有HistoriqueCell
(UIViewController
),其HistoriqueViewController
。该表具有用UITableView
子类化的原型单元。原型单元的四个标签与 HistoriqueCell.h 的出口相关联。但是我所有这些单元格的实例总是有未分配的插座。我的同事的版本运行完美,它是完全相同的代码(我们绕过git,我只是简单地从他的usb棒上加载他复制的项目,只是为了100%确定它不是git,即使git向我们保证已经没有区别)
这让我怀疑问题不在于代码,而在于xcode配置。我记得我有一个类似的问题,因为本地化的故事板。简单地说,法语版本已加载,并且没有连接插座,与我放置插座的英文版本相反。当使用法语 storyboard 时,这些出口就像我现在遇到的问题一样未分配,但我的故事板没有本地化。
Here's the debug showing my unallocated outlets
Here's the storyboard, I also have the @synthesize in the .m
我对这个问题真的很沮丧,我似乎无法找到问题。拜托,如果有人有任何线索,我会全力以赴!
答案 0 :(得分:1)
这是预期的,因为nib文件未自动加载。
您应该通过调用[[NSBundle mainBundle] loadNibNamed:@"HistoriqueCell" owner:self options:nil]
手动加载nib文件。
或者最好使用表视图注册nib对象,如下所示:
UINib *cellNib = [UINib nibWithNibName:@"HistoriqueCell" bundle:nil];
[self.tableView registerNib:cellNib forCellReuseIdentifier:@"HistoriqueCell"];
现在,当您调用dequeueReusableCellWithIdentifier:
时,表视图将返回可重用的单元格,或者创建单元格的新实例并为您加载nib。并且不再需要这项检查:
if (cell == nil) {
...
}
答案 1 :(得分:0)
也许你在代码中设置“Cell”就像识别ID一样,但在Interface Builder
中你的单元格中没有