我正在开发一个应用程序,在某些时候我有几个uitableview。 我想在委托方法之外知道,例如,如果tableviews有一个选定的单元格,那么就是一个动作。
我尝试使用:(NSIndexPath *)indexPathForSelectedRow
但它不起作用,因为如果我没有选定的单元格,[(NSIndexPath *) row]
会返回“0”而不是
感谢..
答案 0 :(得分:20)
您的方法是正确的 - 如果没有选择单元格,indexPathForSelectedRow确实返回nil。但是,如果您尝试将消息发送到nil对象并使用返回的值,它将为0,因此您需要在尝试从其获取单元格行之前测试路径值是否为nil:
NSIndexPath *path = [table indexPathForSelectedRow];
if (path){
row = [path row];
...
}
else{
// No cell selected
}
P.S。 nil只是一个类型0,所以在实践中它们是相同的。