Я видел, что это происходит каждый раз, когда я поворачиваю экран, который имеет a UITableView
на нем. Я узнал, что это происходит промежуток willRotate
и didRotate
вызовы метода в UIViewController
Мои коллеги видели его в других местах также, обычно вокруг вращения. Это не начало происходить до самого последнего времени, и мы озадачены относительно того, как мы должны иметь дело с ним (поиски Google не поднимают сообщение об ошибке в его точной форме). Кто-либо еще встретился с этим, которое знает, что делать с этим?
Я нашел проблему.
Когда вы сбрасываете фрейм tableview
, он вызывает метод делегата tableView: heightForRowAtIndexPath:
для каждой строки в таблице, чтобы он мог пересчитать размер своего содержимого, если необходимо . В этот момент мы выполняем некоторую специальную обработку, чтобы вернуть высоту, и из-за некоторых неверных предположений в нашем коде мы по ошибке вернули NaN
из-за ошибки деления на ноль (переменная, на которую мы делим, предполагалась равной никогда не быть нулевым). Убедившись, что мы не делим на ноль, здесь это исправлено.
(Решил убрать это из комментариев и поставить в качестве ответа, так как я думаю, что это чертовски хороший ответ :)
Ха! У меня тоже был расчет NaN (div0). Ключевое средство отладки: сообщение, о котором идет речь, выводится с помощью NSLog (), поэтому установите точку останова на NSLog () и посмотрите, что делает ОС в это время. Для меня это было myUISlider.value = NaN.
Чтобы установить точку останова:
XCode 3.x
XCode 4.x
XCode 5.x - 7.1 (минимум) (То же, что и 4.x, за исключением того, что теперь навигатором точек останова является CMD-7.)
Запустите приложение, посмотрите, как оно прерывается в NSLog, проверьте трассировки стека.