Сбой приложения для iPhone - выход NSZombie
Мое приложение падает, когда я использую popViewController. При использовании NSZombie я получаю следующее:
2011-07-15 13:20:03.334 Question[27412:207] *** -[CFString release]: message sent to deallocated instance 0x4c8a090
Я не совсем уверен, как это интерпретировать или как найти экземпляр, на который ссылаются...
Приложение вылетает, когда я добавляю следующую строку:
-(void) finishQuestionnaire:(id)sender{
//go back to main manual
[self.navigationController popViewControllerAnimated:YES];
}
Я не думаю, что это проблема, я думаю, что проблема его загрузки...
5 ответов
Кажется, вы перестали освобождать объект (NSString), т.е. освобождаете уже освобожденный объект. Посмотрите, выпустили ли вы где-нибудь строку.
У меня была похожая проблема, и я потратил целый день, чтобы решить эту ошибку... в моем случае была строка вродеstr = [[NSString alloc] initWithString:@"a string"];
затем я изменил как
str = [NSString stringWithFormat:@"%@",aVarible];
и это было решено...
Это означает, что вы выполнили освобождение объекта, и снова вы используете выпущенный объект. Благодаря свойству retain вы можете обработать эту ошибку. И еще одна вещь, о которой я хотел бы сказать, перед отправкой сборки кому-либо, удалите NSZombieEnabled в NO.
По вашей информации я могу сказать, что вы используете объект NSString, который вы уже выпустили. Если вы использовали NSZombie в инструментах, вы можете найти дорожку стека с помощью viewController и метода, в котором происходит сбой. Было бы очень легко найти объект, к которому вы обращаетесь.
Если у вас есть NSZombie
Если он включен, он должен прерываться на линии, где вы ссылаетесь на освобожденный объект, разве это не так?
Согласно сообщению выше, вы пытаетесь освободить экземпляр уже освобожденного NSString
,