【发布时间】:2015-06-25 19:53:12
【问题描述】:
我有一个自定义单元类,它有一个名为 setCell 的函数。
这需要一个词和一个图像,并为它们设置一个标签和一个图像视图。
这工作正常,并在单元设置期间被调用。
问题是当我尝试获取当前选定的单元格文本时,它只返回 nil。
下面是当前的 'didSelectRow' 函数:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let indexPath = myTableView.indexPathForSelectedRow();
let currentCell = myTableView.cellForRowAtIndexPath(indexPath!) as UITableViewCell!;
println(currentCell.textLabel!.text) //This returns nil
}
下面是我的自定义单元设置函数:
func setCell(text: String, imagetext: String) {
if var image = self.myImage {
image.image = UIImage(named: imagetext)
}
if var label = self.myLabel {
label.text = text
println(label.text) //Prints out the items that are in the cells, which is what I want it to do.
}
}
有人知道为什么我的代码返回 nil 吗?
编辑:感谢到目前为止的建议,但我刚刚发现,如果我在调用 setCell 函数后打印出 cell.labelText.text,它只会打印出 nils。
cell.setCell(category, imagetext: theimage)
println(cell.textLabel!.text) //I have 7 items in the list so it just print out nil 7 times.
为什么在上面调用函数后没有设置?
【问题讨论】:
-
在您尝试打印其文本之前,
currentCell是否为零? -
在尝试打印文本之前设置一个断点,并查看单元格是否具有您期望的属性
-
如果我这样做
println(currentCell):<computing.TableViewCell: 0x7f8a38565880; baseClass = UITableViewCell; frame = (0 0; 600 144); autoresize = W; layer = <CALayer: 0x7f8a3861bd30>>,这就是打印到控制台的内容。 Computing 是应用程序的名称,TableViewCell 是我的自定义单元格文件的名称。 (我单击的每个选项都会略有变化。) -
你为什么打电话给
indexPathForSelectedRow()?请求的索引路径作为参数传递,是非可选值 -
打印单元格不会提供正确的信息。如果您在尝试打印单元格的位置设置断点,并且当应用程序暂停执行时,它将在调试器左侧为您提供所有当前实例化对象的概览。您应该可以通过将其放下并查看它来查看该单元格是否具有您所期望的属性。
标签: ios swift uitableview cocoa-touch