Окончательное редактирование:
Я нашел решение моей проблемы, возможно, оно решит и вашу. (Посмотрите на мой ответ на этот вопрос :) UIButton, созданный Interface Builder, аварийно завершает работу
В частности, если на ваших кнопках есть какие-либо изображения, попробуйте удалить их из проекта, получить свежие копии, переименовать их, повторно добавить их в проект, а затем снова подключить их. Кажется, сработало в моем случае.
Предыдущая случайность от меня:
(Не ответ, но ...) Для чего это стоит, я получаю похожее сообщение. Может быть, добавление того, что я вижу, поможет понять все это. Я получаю это как в симуляторе, так и на устройстве.
-[UIImage isKindOfClass:]: message sent to deallocated instance 0x1661f0
Это сообщение не всегда идентично для меня, иногда оно касается сохранения недопустимого экземпляра или нескольких других подобных вещей. Ничего из того, что я делаю сам, но за кулисами.
РЕДАКТИРОВАТЬ: Вот еще один:
-[UIImage retain]: message sent to deallocated instance 0x3b621a0
Вот код, куда меня выгружают (как и вы, я показываю модальное диалоговое окно, хотя у меня пользовательский UIView). В моем случае я заставляю цикл выполнения ждать ответа пользователя, подобного этому:
[modalDialog showInView:self.view
title:@"Illegal Move"
message:message
cancelText:@"Cancel"
proceedText:@"Cheat"];
while (waitingForDialogToDismiss == YES) {
//this line is where NSZombies puts me:
[[NSRunLoop currentRunLoop] runMode: NSDefaultRunLoopMode
beforeDate: [NSDate dateWithTimeIntervalSinceNow:1.5]];
}
Этот модальный диалог построен полностью из пера, имеет пару изображений кнопок и показывает правильно почти всегда. Однако, если я попытаюсь «спешить», коснувшись множества различных элементов пользовательского интерфейса, прежде чем он появится, я могу получить эту ошибку примерно в 30-40% случаев. В одном случае, даже если диалоговое окно появилось, его кнопка «Отмена» имела неправильный рисунок.
Похоже, что представление вида не всегда загружает все правильно, или, может быть, своевременно.
В данный момент я попытаюсь переписать кучу кода, чтобы удалить бизнес NSRunLoop. Посмотрим.
РЕДАКТИРОВАТЬ 2: без помощи
NSRunLoop определенно не был проблемой. Я сузил это намного больше и начал новый вопрос здесь: UIButton, созданный Интерфейсным Разработчиком, терпит крах