怎么知道uitableview是否有选定的单元格

Fra*_*ade 5 iphone uitableview ipad

我正在开发一个应用程序,在某些时候我有几个uitableview.我想在委托方法之外知道一个动作,例如,如果tableviews有一个选定的单元格和哪个单元格.

我试图使用:(NSIndexPath *)indexPathForSelectedRow但它不起作用,因为如果我没有选定的单元格,则[(NSIndexPath *) row]返回"0"而不是nil

你能帮忙吗?

谢谢..

Vla*_*mir 20

您的方法是正确的 - 如果没有选择单元格,indexPathForSelectedRow确实返回nil.但是,如果您尝试将消息发送到nil对象并使用返回的值,则它将为0,因此您需要在尝试从中获取单元格行之前测试路径值是否为nil:

NSIndexPath *path = [table indexPathForSelectedRow];
if (path){
   row = [path row];
   ...
}
else{
 // No cell selected
}
Run Code Online (Sandbox Code Playgroud)

PS nil只是一个类型0,所以在实践中它们是相同的东西.