Так я получаю сообщение об ошибкеIOS сообщение об ошибке: Причина: '- [__ длина NSArrayM]:
reason: '-[__NSArrayM length]:
, когда эта линия выполнена в моей программе
if (indexInTour == [tourArray count]-1)
Что я не' t понимать, поскольку оба значения определены во время выполнения.
Этот код работает нормально, когда контроллер просмотра выталкивается с одного контроллера вида, но сбрасывается при нажатии на другой.
Кроме того, я запутался, почему
NSLog(@"%i", [tourArray count]);
работает отлично, в то время как
if (indexInTour == [tourArray count]-1) // Crashes here
нет.
Некоторая дополнительная информация:
Код:
NSLog(@"%i", [tourArray count]);
NSLog(@"%i", indexInTour);
NSLog(@"%@", NSStringFromClass([tourArray class]));
// NSLog(@"%@", tourArray);
if (indexInTour == [tourArray count]-1) // Crashes here
Выход:
2012-07-31 09:46:10.268 XXX[13374:11603] 7
2012-07-31 09:46:10.269 XXX[13374:11603] 2
2012-07-31 09:46:10.270 XXX[13374:11603] __NSArrayM
Полное сообщение об ошибке:
-[__NSArrayM length]: unrecognized selector sent to instance 0x7a97f60
2012-07-31 09:50:26.696 XXX[13456:11603] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM length]: unrecognized selector sent to instance 0x7a97f60'
Перед этой строкой добавьте этот код: NSLog (@ "% @", NSStringFromClass ([tourArray class])); –
Кажется, что класс экземпляра: __NSArrayM – ratsimihah
Попробуйте запустить сам массив NSLog (@ "% @", tourArray)); Я собираюсь предположить, что какой-то объект в нем был освобожден или что-то еще, поэтому массив поврежден. Мое лучшее предположение. –