首页 文章

在解包一个Optional值访问tableView Cell时意外地发现了nil

提问于
浏览
1

我想从tableView func外部访问tableView的单元格,例如在这种情况下我想从IBAction Func访问,然后我创建了tableView对象和IndexPath对象,当我运行我的项目时,Xcode向我显示了这个错误:

致命错误:在解包可选值时意外发现nil

这条线: mytableView!.cellForRowAtIndexPath(indexPath!)

@IBAction func editButtonFunc(sender: AnyObject) {

    mytableView!.cellForRowAtIndexPath(indexPath!)
    let cell =
    mytableView!.dequeueReusableCellWithIdentifier(
        "mycell", forIndexPath: indexPath!)
        as! profileTableViewCell
    cell.contentOutlet.text = contentItems[indexPath!.row]
    cell.contentOutlet.textAlignment = NSTextAlignment.Right
    cell.contentOutlet.font = UIFont(name: "X Yekan", size: 18)

}

3 回答

  • 0

    如果你只是想得到一些单元格的参考,也许你需要:

    func getTableViewCell() -> UITableViewCell? {
        guard let tableView = mytableView, index = indexPath 
        else { return nil }
    
        return tableView.cellForRowAtIndexPath(index)
    }
    

    并且,如果要为tableViewCell设置数据,则应在 UITableViewDataSource 方法中执行此操作:cellForRowAtIndexPath .

  • 0

    调用tableview方法cellForRowAtIndexPath几乎总是错误的 . 如果索引路径不适用于屏幕上可见的单元格,则返回nil . 您的情况更糟,因为您调用该函数,然后不使用其值 . 绝对的,完全错误的是从你自己的委托cellForRowAtIndexPath以外的任何地方调用dequeue ....

  • 0

    当你试图打开它时,显然 mytableViewindexPathnil . 在强制打开它们之前,必须检查这两个对象是否保持正确的值 .

相关问题