Я создаю / отправляю свой ViewController, отображаю некоторую информацию и возвращаюсь к своему RootViewController.Пока я возвращаюсь назад, приложение вылетает (EXC_BAD_ACCESS).
С помощью инструментов я обнаружил, что вызывается dealloc моего ViewController, который освобождает мой класс-оболочку.В моем классе-обертке также вызывается метод dealloc.Эта сделка освобождает parsedJson
(сохраненное свойство), и в этот момент приложение вылетает.Странно, что количество сохранений падает с 1 до -1, несмотря на то, что только malloc и был выпущен релиз.
Если я сохраняю возвращенный результат parsedJson
, приложение не падает, и я не 'я не могу найти утечку.
SBJsonParser *JSONParser = [SBJsonParser new];
id parsedJson = [[JSONParser objectWithString:jsonString error:NULL] retain];
Я не могу сделать релиз / авто-выпуск, потому что тогда приложение снова зависнет.
С NSZombieEnabled я получаю
* - [выпуск CFDictionary]: сообщение отправлено на освобожденный экземпляр 0x6d51aa0
Я получаю этого зомби после того, как внес изменение.Раньше я использовал свойство и Interface Builder для моего контроллера представления, и у меня не было сбоев, потому что контроллер представления не был немедленно освобожден.Сейчас я делаю это:
MyViewController *myViewController = [[MyViewController alloc] init];
[[self navigationController] pushViewController:myViewController animated:YES];
[myViewController release];
myViewController = nil;
Где ошибка?Я не могу сохранить parsedJSON
без выпуска.Я никогда не выпускаю parsedJson
, кроме сделки.Есть ли в используемой библиотеке ошибка?