iOS5: как предотвратить исключение для метода rectForRowAtIndexPath - PullRequest
5 голосов
/ 28 октября 2011

Исключение:

запрос прямоугольника при неверном пути индекса

Код:

CGRect rect = [tableView rectForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]];

Fix:

if ([tableView numberOfRowsInSection:0] <= i) {
    return;
}

Может быть, существовать лучше

1 Ответ

3 голосов
/ 02 июля 2015

Обычно rectForRowAtIndexPath может обрабатывать недопустимый indexPath как состояния документа, но в IOS 7.1 он не обрабатывает недопустимый indexPath должным образом. Таким образом, передача nil приведет к сбою и получит сообщение об ошибке:

запрос прямоугольника при неверном пути индекса ( {длина = 2, путь = 0 - 0})

Одним словом, для rectForRowAtIndexPath необходимо выполнить проверку на ноль вручную.

...