无法访问自定义表格单元格变量

时间:2014-11-07 21:59:26

标签: ios uitableview swift

我正在使用Xcode 6.0.1和Swift。我有一个表格视图,它适用于普通类型的单元格,但在我将其更改为使用自定义单元格后,它开始显示错误。我在故事板中创建了一个Table View Cell,制作了一个Cocoa Touch Class文件,MyCustomCell,它是UITableViewCell的子类,并在Identity检查器中设置故事板中的自定义单元格以使用此类。我将故事板中自定义单元格中的文本字段连接到MyCustomCell.swift文件,作为名为someData的变量。

问题出现在这里:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as MyCustomCell
        cell.someData!.text = "testing"
        return cell
}

来运行,"测试" line给了我一个致命错误:在解开一个Optional值错误时意外发现nil,假设我在viewDidLoad中手动注册了单元类,如下所示:

tableView.registerClass(MyCustomCell.self, forCellReuseIdentifier: "Cell")

相反,如果我从未注册过课程,而是选择" Cell"在故事板中作为自定义单元格的Restoration ID,我得到了相同的错误nil错误消息,但在" let cell ="而不是"测试"线。

MyCustomCell类连接someData变量并具有init,awakeFromNib和setSelected shell,但没有别的。

我真的不确定如何解决这个问题。也许我需要为自定义单元格创建一个笔尖?任何帮助将不胜感激。

(顺便说一下,我使用核心数据来存储每个表格单元格的实体,但这里没有显示,因为我只关心让自定义单元格正常工作。 )

2 个答案:

答案 0 :(得分:2)

您在Interface Builder中使用Restoration ID(Identity Inspector)而不是Indentifier(Attributes Inspector)。

答案 1 :(得分:1)

从故事板实例化UITableView时,调用 registerClass(_:forCellReuseIdentifier:)会导致问题。您需要在属性检查器中的storyboard中提供reueseIdentifier。