Я разрабатываю приложение iPad с включенной дугой. Но теперь я использую немного рамки без дуги. Я установил флаг -fno_objc_arc и так далее. Но есть еще одна проблема: Один объект в рамках содержит ссылку на текущий viewController. Если я оставить текущую ViewController, рамки высвобождает свойство контроллера:ARC и non ARC framework - iOS - правильное освобождение не работает?
[viewController release];
Объект будет освобождён и кажется, что все будет в порядке. Но, глядя ближе, вы поймете, что все переменные экземпляра остаются действительными и существующими. Предположим, что мой viewController имеет две переменные экземпляра для переменных экземпляра - массив и subviewController. Обычно в дуге переменные экземпляра освобождаются, если основной объект освобождается. Но если инфраструктура non arc отправляет сообщение о выпуске, кажется, что объект dosen't освобождает свои переменные экземпляра, вызывая ошибку памяти, потому что они не упоминаются нигде!
РЕДАКТИРОВАТЬ:
Здесь счетчик ссылок, таблица является переменной экземпляра высвобождения ViewController:
контроллер перед: 1
контроллер экземпляра таблицы перед: 1
Теперь [ viewController release] отправляется
контроллер после: 0
контрольный экземпляр таблица после: 1
Любые предложения по этой проблеме? Буду признателен за любую помощь!
Да, спасибо, именно так оно и должно быть: Обоснование: хотя ARC автоматически уничтожает переменные экземпляра ..... (ARC Doc) Но если вызывается вызов [viewController release] (в недуговой структуре) , переменные экземпляра освобожденного контроллера (который управляется дугой) все еще существует, хотя keepCount равен 1 - до и после отправки релиза – Alexander
вы его проверяли или вы просто принимаете это? –
Как я могу это принять? Я проверил его: po [viewController controllerTable] (gdb) print (int) [0x88be250 saveCount] $ 1 = 1 Теперь [просмотр релиза]; отправляется (gdb) print (int) [0x88be250 saveCount] $ 2 = 1 –
Alexander