从单元格行获取UITableViewCell属性

时间:2015-08-30 15:08:27

标签: ios swift uitableview

我一直在尝试学习UITableViewControllers的方法,我遇到了一个错误。这是我的代码的相关部分:

class celly : UITableViewCell {
var name : String = ""
} 

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    println(String((tableView.cellForRowAtIndexPath(indexPath.row) as! celly).name))
}

这是倒数第二行(println(...))的错误。这不是真正的错误......我想:[)

Cannot find initializer for type 'String' that accepts an argument list of type '(String)' 

有人知道为什么我的线路无效吗?

提前多多感谢。非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

错误使用错误row。方法tableView:cellForRowAtIndexPath:正在接受NSIndexPath,因此您必须使用indexPath而不是indexPath.row来调用它。

println(String((tableView.cellForRowAtIndexPath(indexPath) as! celly).name))

要轻松发现类似的错误,您可以考虑将语句解构为简单且可读的错误:

解构:

let cell = tableView.cellForRowAtIndexPath(indexPath) as! celly
let name = cell.name

println(name)

错误消息是一个错误,我会考虑报告。

答案 1 :(得分:0)

tableView.cellForRowAtIndexPath(indexPath.row)会抛出错误。原因是cellForRowAtIndexPath()采用NSIndexPath的参数列表,而不是Int。使用indexPath.row,您将返回Int而不是必需的NSIndexPath。要解决此问题,只需删除.row

即可
println((tableView.cellForRowAtIndexPath(indexPath) as! celly).name)

你应该可以运行它。