Разное управление памятью ARC / нет ARC - PullRequest
2 голосов
/ 10 сентября 2011

Я должен преобразовать простой код ARC в не ARC. Хотя это было относительно просто, я пропустил назначение переменной экземпляра self.var = xxx, вместо этого я написал var = xxx.

В то время как в версии ARC это не вызывало никаких проблем - в не ARC-версии это, безусловно, вызывало сбой.

Означает ли это, что на самом деле можно назначать переменные экземпляра в ARC без self. таким образом они сохраняются?

Спасибо!

ps, какой лучший источник, чтобы узнать, как программировать в ARC, чтобы избежать очевидных ошибок - до сих пор я не нашел никаких проблем, но я нервничаю, что мог что-то пропустить

Ответы [ 2 ]

1 голос
/ 15 сентября 2011

Означает ли это, что на самом деле можно назначать переменные экземпляра в ARC без self. таким образом они сохраняются?

Да, вроде.

id obj_;

Это так же, как это.

id __strong obj_;

obj_ имеет строгую ссылку для назначенного объекта. Назначенный объект не будет освобожден до тех пор, пока не будет освобожден объект-владелец для ivar.

Пожалуйста, обратитесь к документу LLVM или справочнику ARC Apple, который все еще находится под NDA.

0 голосов
/ 30 января 2012

enter image description here

enter image description here

Автоматический подсчет ссылок запрещает явную отправку сообщения "dealloc"

Я поделился трюком, чтобы включить более старую компиляцию библиотеки в новом iOS5 SDK.

Нажмите на проект.

Нажмите на цель.

Выберите вкладку фаз сборки.

Выберите несколько файлов, в которых вы хотите отключить ARC.

Нажмите клавишу ВВОД / Хит клавишу ввода

Введите «-fno-objc-arc» (без кавычек, как показано на рисунке)

...