【发布时间】:2013-05-12 03:22:13
【问题描述】:
我的问题与this one非常相似。
我在 Interface Builder 中使用故事板设计的自定义原型单元格将所有内部对象设置为 nil(未创建),因此当我尝试为它们分配值时,它们保持空白。
我正在使用 Xcode 4.6.2,并在 6.1 iPhone 模拟器中运行代码。这是我所做的:
- 在界面构建器中设计了一个带有必要字段的原型单元。
- 在代码中为这个自定义单元格创建了 UITableViewCell 的子类,然后在界面生成器中将单元格设置为这种类型。
- 控制拖拽字段到 .h 文件中,它为我设置了对象(UILabels 等)。我将单元格的标识符设置为“serverNameCell”
- 将表的数据源和委托设置为表所在的 Viewcontroller。
- 将表格与 ViewControler 中的表格对象关联
目前,表格显示的部分和行数正确,但未设置单元格的值。
这是cellForRowAtIndexPath:(NSIndexPath *)indexPath 代码:
NewServerCell *cell = [tableView dequeueReusableCellWithIdentifier:@"serverNameCell"];
我总是取回一个单元格,并且内存位置对于有效对象来说似乎没问题。
但是当我尝试cell.name.text = [thisServer name]; 时,我发现cell.name 标签始终为零。
没有崩溃 - 但我的字段没有被设置。
我已经检查了一百万次标识符是否正常 - 是的! 我已经浏览了来自故事板的自定义单元格的 Apple 文档 - 但仍然遇到这个令人沮丧的问题..
其他人遇到过这个问题并解决了吗?
【问题讨论】:
-
如果你记录单元格,是不是说它是一个NewServerCell,而不是一个UITableViewCell?
-
@rdelmar:是的,它是一个 NewServerCell,但它的所有属性(以及它的祖先 UITableViewCell 的属性)都是 nil
-
嗯....这种问题很难诊断,因为您所说的一切听起来都是正确的。您是否使用了任何一种注册方法(用于注册类或 nib)?如果单元格是在情节提要中制作的,则不应使用其中任何一个。除了 IBOutlets 之外,您的自定义单元代码中还有其他内容吗?
-
@rdelmar:我尝试了使用和不使用
registerClass forCellReuseIdentifier- 现在没有,也没有骰子。除了(连接的)IBOutlets之外,什么都没有 -
如果有可以发布项目的地方,我会看看,但正如我所说,如果没有实际看到项目,这些问题很难诊断。
标签: ios objective-c uitableview storyboard