Если я решу перейти на iOS 5, могу ли я
нужно удалить все [myObject retain]
и [myObject release] заявления от
мой код?
Да, но XCode 4.2 включает в себя новый инструмент «Migrate to Objective-C ARC» (в меню «Правка-> Рефакторинг»), который сделает это за вас. Вызов колллока - это отдельная история. Как упоминалось в комментариях, ссылка на clang гласит, что вы должны оставить свой метод dealloc:
Обоснование: даже если ARC уничтожает переменные экземпляра автоматически, все же есть веские причины для написания метода dealloc, например, освобождения ресурсов, не подлежащих сохранению. Неспособность вызвать [super dealloc] в таком методе - почти всегда ошибка.
Вы включаете ARC, используя новую -fobjc-arc
флаг компилятора. ARC поддерживается в
Xcode 4.2 для Mac OS X v10.6 и v10.7
(64-битные приложения) и для iOS 4
и iOS 5. (Слабых ссылок нет
поддерживается в Mac OS X v10.6 и iOS
4). В XCode нет поддержки ARC
4.1.
-
Если я разрабатываю новое приложение для iOS 5, используя
ARC, мне нужно будет реализовать некоторые
что-то типа проверки «ретро-совместимости»?
Т.е .: мне нужно будет проверить версию
iOS и удержание вызова и отпуск
соответственно? Итак, в основном, ARC
доступно для всех версий iOS или просто
для iOS 5?
Нет, потому что ARC делает свое волшебство во время компиляции, а не во время выполнения.
Вместо того, чтобы вы помнили, когда
использовать сохранить, освободить и
Авто-релиз, ARC оценивает
жизненные требования ваших объектов
и автоматически вставляет
соответствующий метод вызывает вас в
время компиляции. Компилятор также
генерирует соответствующие методы dealloc
для вас.
Дополнительная информация о ARC: http://clang.llvm.org/docs/AutomaticReferenceCounting.html