这是我的Swift代码,用于生成我的表格 View 。我试图建立一个带有明细标签的tableView。我相信造成这个问题是因为

if (cell == nil) {
            println("1")
            cell = UITableViewCell(style: .Subtitle, reuseIdentifier: "CellSubtitle")
            //cell = tableViewCell
        }

永远不会被调用,因此永远不会使用UITableViewCellStyle.Subtitle样式初始化单元格。这是该方法所需的代码:
    func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell!
{
    println("start TableViewCellForRowAtIndexPath")
    var cell: UITableViewCell! = tableView.dequeueReusableCellWithIdentifier("CellSubtitle") as UITableViewCell
    if (cell == nil) {
        println("1")
        cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "CellSubtitle")
        //cell = tableViewCell
    }

    cell.textLabel.text = instructions[indexPath.row].text
    println("2")
    //cell.detailTextLabel
    cell.detailTextLabel.text = "HI"
    println("3")

这是该方法的控制台输出:
start load
1
2
done load
start TableViewCellForRowAtIndexPath
2
fatal error: Can't unwrap Optional.None
(lldb)

我如何初始化detailTextLabel以便插入文本?当我尝试设置标签的文本时,我收到fatal error: Can't unwrap Optional.None。为什么会收到此错误?

该单元不是在 Storyboard上创建的。我初始化了单元格或使用tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "CellSubtitle")注册了它的类

最佳答案

我假设您是在 Storyboard 中创建单元格的,所以这就是为什么从不调用“if”子句的原因。您只需要在 Storyboard 中的检查器中将单元格的样式更改为“字幕”即可(并删除该if子句)。

关于ios - Swift UITableViewCell detailTextLabel.text引发错误 'fatal error: Can' t展开Optional.None',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24190284/

10-09 08:52