как узнать, есть ли у uitableview выделенная ячейка - PullRequest
5 голосов
/ 21 июля 2011

Я занимаюсь разработкой приложения, и в какой-то момент у меня есть несколько uitableview. Я хочу знать за пределами методов делегата, например, действие, если у табличных представлений есть выбранная ячейка и какая.

Я пытался использовать: (NSIndexPath *)indexPathForSelectedRow, но это не работает, потому что если у меня нет выделенной ячейки, [(NSIndexPath *) row] возвращает "0", а не ноль

Не могли бы вы помочь?

спасибо ..

1 Ответ

20 голосов
/ 21 июля 2011

Ваш метод правильный - indexPathForSelectedRow действительно возвращает nil, если ячейка не выбрана. Но если вы попытаетесь отправить сообщение объекту nil и использовать возвращенное значение, оно будет равно 0, поэтому вам нужно проверить, равняется ли значение пути нулю или нет, прежде чем пытаться получить из него строку ячейки:

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

P.S. nil это просто типизированный 0, поэтому на практике это одно и то же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...