Как начинающий программист на iPhone, какова наилучшая практика написания приложений для использования с iOS 5 или более ранними версиями? В частности, следует ли продолжать использовать выпуск/сохранение данных или я должен игнорировать это? Это имеет значение?
IOS 5 Best Practice (выпуск/сохранение?)
Ответ 1
Это вам. Вы можете писать приложения с помощью ARC (Automatic Reference Counting), а Xcode будет писать "код клея", чтобы ваши приложения с поддержкой ARC могли работать на iOS 4, никаких изменений не требуется. Тем не менее, некоторые вещи не будут работать, и наиболее заметно, что многие библиотеки, которые вы, возможно, захотите использовать, будут (иногда) вызывать бесчисленные ошибки, и вы не сможете их использовать до тех пор, пока разработчики не опубликуют обновление, совместимое с ARC.
Изменить: Недавно я обнаружил, что вы можете отключить ARC для каждого файла. См. pixelfreak ответ. Итак, мой совет по-прежнему стоит, но теперь сторонние библиотеки не нуждаются в обновлении для работы с ARC.
Здесь Apple говорит о том, чтобы отказаться от ARC для определенных файлов:
Когда вы переносите проект на использование ARC, флаг компилятора -fobjc-arc по умолчанию для всех исходных файлов Objective-C. Вы можете отключить ARC для определенного класса с использованием флага компилятора -fno-objc-arc для этот класс. В Xcode на вкладке "Сформировать фазы" откройте "Компилировать" Группа источников, чтобы открыть список исходных файлов. Дважды щелкните файл для которого вы хотите установить флаг, введите -fno-objc-arc во всплывающем окне и нажмите "Готово".
См. полный путеводитель перехода здесь.
Ответ 2
Для кого-то еще любопытно, как отключить ARC для отдельных файлов, вот что я сделал:
- Перейдите в настройки проекта,
Build Phases > Compile Sources
- Выберите файлы, которые вы хотите отключить ARC, и добавьте флаги компилятора -fno-objc-arc. Вы можете установить флаги для нескольких файлов одним выстрелом, выбрав файлы, а затем нажав клавишу "Enter".
Я не знаю, рекомендуется ли это, но он работает для меня.
PS: Я собрал эту информацию из clang.llvm.org здесь, которая является общедоступной, поэтому не под NDA.
Ответ 3
iOS 5 все еще находится под NDA и, вероятно, будет, пока не выпустят общедоступную версию. Если у вас есть учетная запись разработчика, перейдите в Форумы разработчиков Apple и спросите там.
Для предыдущих версий вам необходимо подсчитать ссылки и сохранить и отпустить соответственно. Ознакомьтесь с Руководство по управлению памятью.
Изменить: Здесь публичная спецификация для автоматического подсчета ссылок и цитата из публичная страница iOS 5:
Автоматический подсчет ссылок (ARC) для Objective-C делает управление памятью заданием компилятора. Включив ARC с новым компилятором Apple LLVM, вам больше не понадобится вводить сохранение или выпуск, что значительно упрощает процесс разработки, одновременно уменьшая количество сбоев и утечек памяти. Компилятор имеет полное представление о ваших объектах и выпускает каждый объект в тот момент, когда он больше не используется, поэтому приложения работают как можно быстрее, с предсказуемой и плавной производительностью.
Ответ 4
Детали легки/под NDA на данный момент, но Apple внедрила автоматический подсчет ссылок (ARC) в iOS 5, как описано здесь: http://developer.apple.com/technologies/ios5/
Если вы разработали новое приложение в Xcode 4 с iOS 5 SDK, вы можете спокойно игнорировать подсчет сохранения/выпуска.
[править] sudo rm -rf делает хорошую точку; сторонние библиотеки могут быть существенно затронуты
Ответ 5
Никто не упоминал SystemConfiguration.framework? Не забудьте поместить его в Рамки. Я с трудом провел несколько часов, чтобы понять это.
Ответ 6
Это, безусловно, выбор разработчика или команды. ARC (автоматический счетчик ссылок) упростил работу, автоматически управляя памятью для вас. Он будет выпускать, сохранять и отменять, если это необходимо. Я верю, что вы должны получить опыт управления памятью себя предпочтительно в тестовом приложении, если вы еще этого не сделали. Еще одна вещь, которую следует учитывать, заключается в том, зависит ли ваше приложение от сторонних библиотек, которые, если они не конвертированы в ARC, будут препятствовать компиляции вашего приложения. Выбор, очевидно, зависит от ситуации.
Ответ 7
установить флаг как -fno-objc-arc в настройках проектa > Фазы сборки > Скомпилировать источники