swift 3中的cellForRow(at:IndexPath)在XCode 8中表现得很有趣

时间:2016-10-10 05:34:08

标签: ios swift xcode swift3 xcode8

我尝试使用方法cellForRow(at:IndexPath)从TableView恢复单元格,但编译器似乎不喜欢这种方法,因为它不会让我调用它: S

http://imgur.com/aVhpXr5(暂不发布图片)

以下是相关代码的片段:

if let i = self.data.index(of: snapshot.value as! String) {

    self.data[i] = snapshot.value as! String

    self.tableView.cellForRow(at: i).textLabel!.text = "Modd"


    self.tableView.cellForRow(at: [IndexPath(row: i, section: 0)])!.textLabel!.text = "mod"
} 
else {

    print("Modified an item that wasn't in the data list")
}

如果编译器不同时接受这两种方法,我该如何调用该方法?

2 个答案:

答案 0 :(得分:3)

您的第二个语句的问题是您将创建的indexPath添加到数组中。

使用以下代码:

self.tableView.cellForRow(at: IndexPath(row: i, section: 0))

答案 1 :(得分:0)

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
      let cell:UITableViewCell
      if let i = self.data.index(of: snapshot.value as! String) {

         self.data[i] = snapshot.value as! String

         cell = tableView.cellForRow(at: indexPath)!

         cell.textLabel!.text = "Modd"
      }
      else {

         print("Modified an item that wasn't in the data list")
      }

      return cell == nil ? UITableViewCell() : cell

   }