2014-10-17 2 views
0
UITableViewCell* cell=[_tableView cellForRowAtIndexPath:[_tableView indexPathForRowAtPoint:point]]; 

Это линия, что мое приложение падает на. Есть ли подсказки или рекомендации о том, как предотвратить возникновение сбоя. Возможно, не выполняйте этот кусок кода вообще, если индекс находится за пределами массива.Как предотвратить - [__ NSArrayM objectAtIndex]:: индекс 1 за пределы [0 .. 0] авария с встречающимся в этой ситуации

+0

Разделить код на две строки. Проверьте возвращаемое значение 'indexPathForRowAtPoint'. – rmaddy

+0

Я думаю, если точка не видна, что произойдет? – gabbler

ответ

0

Вы не можете гарантировать, что indexPathForRowAtPoint: вернет правильный путь индекса, поэтому проверить его перед использованием:

NSIndexPath *indexPath = [_tableView indexPathForRowAtPoint:point]; 
if (indexPath) { 
    UITableViewCell* cell=[_tableView cellForRowAtIndexPath:indexPath]; 
} 
Смежные вопросы