Сбой на устройстве, но не на симуляторе (и наоборот) обычно вызывается скомпилированной библиотекой / структурой, которая соответствует одной аппаратной платформе, но не другой. Поскольку симулятор работает на Intel, а устройство на руке, это вызывает странные сбои. Отметьте все, что вы могли добавить, особенно то, что вы недавно не компилировали.
Ошибка -[NSBundle < null selector>]: unrecognized selector sent to instance 0x10a0e0
предполагает, что по какой-то причине класс NSBundle
"забыл", что у него есть метод mainBundle
. Обратите внимание, что это селектор, который является нулевым, а не объект, как мы могли бы ожидать в ошибке, связанной с памятью. Это говорит о каком-то высоком уровне коррупции где-то.
Я бы поставил следующий журнал перед любыми звонками на [NSBundle mainBundle];
NSLog(@"responds to selector mainBundle=%@",[NSBundle respondsToSelector:@selector(mainBundle)]?@"YES":@"NO");
Это скажет вам, если он действительно теряет селектор mainBundle
.
Edit01:
Спасибо за ваш ответ. Похоже на то
Nsbundle заявляет, что может ответить
mainbundle: "отвечает на селектор
mainBundle = YES ", непосредственно перед
аварийный вызов [NSBundle mainBundle]
Хммм, сбой должен быть достаточно серьезным, чтобы вызвать неправильный возврат кода ошибки. Это говорит о том, что проблема может быть в строках непосредственно перед или после вызова mainBundle.
Учитывая, что сбой происходит в CustomTableViewCell, я предполагаю, что это проблема в кончике. У вас есть подкласс UITableViewCell, определенный в кончике? У вас есть изображение, определенное в перо? Какой это тип файла? Возникает ли та же ошибка с другим изображением или другим пером?
Я думаю, что ключ к разгадке в том, что он работает на симуляторе, но не на устройстве. Вы должны искать вещи, которые будут вести себя по-разному в зависимости от оборудования.
У вас, конечно, тут сложный вопрос.