Концепция устаревших методов и цели развертывания iOS

Может кто-нибудь объяснить концепцию установки целевой цели развертывания iOS в проекте iOS. У меня есть приложение, которое мне нужно было поддерживать от iOS 4.3 до iOS 6.0. Какой должна быть цель развертывания iOS?

Когда я устанавливаю его в 4.3, он компилируется хорошо, но если я изменю его на 6.0, я вижу много предупреждений компиляции для устаревших методов. Каков идеальный способ справиться с этим. Должен ли я удалить все предупреждения, которые я вижу на iOS 6.0, имея в виду, что он по-прежнему поддерживает 4.3 цели?

Цель развертывания – это самая ранняя версия iOS, которая может запускать ваше приложение. Поэтому, если вы хотите поддерживать от iOS 4.3 до 6.0, у вас должен быть установлен целевой уровень развертывания 4.3 и Base SDK для iOS 6.0.

Устаревшие методы – это методы, которые больше не будут поддерживаться в будущих версиях SDK. Эти методы дают предупреждение и могут привести к небезопасному коду, поскольку есть лучший подход. Его поощряют не использовать их. Иногда вам нужно запускать один или несколько методов в зависимости от версии ОС, но это выходит за рамки вопроса 😉

Как вывод, идеальный зависит от вашего продукта, но имейте в виду, что пользователи iOS используют новые версии ОС довольно рано. Поэтому я бы пошел от iOS 5.0 до 6.0, но это мое личное мнение 😉

Цель развертывания заключается в том, как указать минимальную требуемую версию iOS для вашего приложения. Если вам нужно поддерживать iOS 4.3 и выше, целью развертывания должно быть iOS 4.3.

«Устаревший метод» – это тот, который был отмечен для удаления из SDK в какой-то момент в будущем. В зависимости от рассматриваемого API у вас может не быть выбора, кроме как продолжать использовать их, пока вы должны настроить таргетинг на iOS 4.3.

Подумайте о том, чтобы повысить требуемую версию iOS, как только это будет возможно, чтобы вы могли использовать новейшие API. Это обеспечит наилучшую общую совместимость и производительность на самом большом количестве последних iOS-устройств.

  • Ошибка Xcode 8 Swift 3 при запуске
  • Ошибка NSUbiquitousKeyValueStore: <информация о приложении> не имеет действительного права com.apple.developer.ubiquity-kvstore-identifier
  • выпускать дублирующие узлы с помощью gkcomponents в редакторе сцены Xcode
  • Требуется миграционный проект для iOS 7?
  • Почему XCode запускает приложение дважды для запуска теста пользовательского интерфейса?
  • Подключение iPad к Mac Mini для разработки Xcode
  • Xcode 7.2 Документация, всегда загружаемая из Интернета
  • Невозможно добавить профиль распределения ресурсов в Xcode 5
  • Как установить точки UIbutton, подобные тем же формам, что и cashapelayer
  • Как переименовать файл infoplist.strings?
  • CoreBluetooth - запрос не поддерживается. Зачем?
  • Interesting Posts

    Приложение Замораживает с помощью «Невозможно выполнить сопоставление регулярных выражений на объекте 1»

    Обработка iAd не получает Ad в настройке MedMedia Mediation

    Анимированный gif в приложении iPhone

    распознаватель жестов не работает над subview

    iOS – Как добиться анимации частиц как эффект на iOS

    Глубокая ссылка на другое приложение не открывается, хотя UIApplication.sharedApplication.canOpenURL (url) возвращает true

    Очень странное обращение ориентации рамы UIView

    presentViewController после отклоненияПросмотрСообщения

    Назначение несовместимого типа делегату

    Библиотека SocketIO Swift (версия 13) не подключает сокет для iOS

    Какой API следует искать для отображения UIButtons или UITableViewCells в UIView в нижней части экрана?

    Логотип Google скрывается за нижней панелью задач

    сравнение nsmutablearray.count & tableview indexpath.row дает нечетные результаты

    Расширение рассылки iOS – как получить доступ к основным данным

    Узнайте количество цифр в валюте в iOS

    Давайте будем гением компьютера.