Подтвердить что ты не робот

Xcode 4.2 Предупреждения при отключении Nav Controller на панели вкладок в IB

Я разрабатываю приложение, совместимое с iOS 4, поэтому моя цель развертывания установлена ​​на iOS 4.0.

Всякий раз, когда я отбрасываю UINavigationController на UITabBar, я получаю эти два предупреждения:

  • warning: Attribute Unavailable: Defines Presentation Context is not available prior to Xcode 4.2.
  • warning: Attribute Unavailable: Defines Presentation Context on iOS versions prior to 5.0.

Функция UINavigationController работает, как и ожидалось, на самом деле все приложение работает отлично. Но эти два предупреждения сводят меня с ума!

Кроме того, в момент удаления UINavigationController предупреждения исчезают.

4b9b3361

Ответ 1

Снимите флажок "Определяет контекст" в инспекторе атрибутов. (Дважды щелкните по MainWindow.xib, выберите контроллер навигации, затем перейдите в View- > Utilities- > Attributes Inspector.) Это избавит вас от предупреждений.

Ответ 2

Вы получаете эти предупреждения, потому что используете iOS 5.0 SDK с целью развертывания 4.x.

Все, если нет, большая часть новой версии 5.0, в том числе ARC и Storyboards, полностью обратно совместима с iOS 4.x(я не помню, является ли версия 4.0 или 4.3 самой низкой поддерживаемой версией, проверьте документы) он будет работать по назначению, но Xcode будет предупреждать вас в любом случае.

Вы должны быть в состоянии отключить это предупреждение, если это действительно вас беспокоит, но я бы этого не сделал. Тем не менее, Apple в настоящее время не принимает приложения, созданные/архивированные с помощью бета-версии Xcode 4.2 для отправки в App Store. Это означает, что вам нужно использовать Xcode 4.0/4.1 в рабочей среде.


Прежде чем идти дальше, вы должны знать, что Xcode 4.2/iOS 5 является бета-программным обеспечением, он находится под управлением NDA (вы согласились на это, когда вы присоединились к программе разработчиков Apple) и не могут быть обсуждены в общественном достоянии. Это означает, что вам не удастся получить большую помощь от мест в общественном мнении, например StackOverflow, насколько это возможно. Но, так как я здесь, и это вопрос очень высокого уровня, я могу помочь:)

В будущем, если у вас есть вопросы или проблемы с бета-версией iOS, вы должны нажать на Форумы разработчиков бета-версии Apple (отличный ресурс, всегда поиск до публикации), или #iphonedev на irc.freenode.net для не-бета-материала (я буду там, скажи привет!)


Если вы разрабатываете приложение для выпуска в App Store:

Вы должны развиваться с Xcode 4.0 или 4.1, Apple не будет принимать приложения, созданные/архивированные с 4.2. (Я знаю, что я повторил сам, но люди, похоже, часто промахиваются)

И, хотя 4.2b7 поддерживает разработку более ранних фреймворков, чем предыдущие бета-версии Xcode, (позволяя устанавливать предыдущие версии симулятора), вы по-прежнему будете случайно использовать 5.0 SDK-функции повсюду, так как код конструктор завершения/интерфейса очень агрессивно выступает за всю новую жару. Это связано с тем, что бета-версия предназначена для поиска новых вещей, а не для стабильной разработки приложений.

Это означает, что вам нужно переключиться на использование Xcode 4.0/4.1 для производства, если вы его не установили, или вы заменили стабильную версию бета-версией, не пытайтесь установить 4.0/4.1 на top of the 4.2 beta​​strong > , странные вещи произойдут, и обе версии начнут действовать действительно странно, а Xcode сбой будет как минимум вдвое чаще.

Лучшее, что можно сделать в этой ситуации, состоит в следующем: Убедитесь, что вы ничего не пропускаете, иначе вам придется перезапустить весь процесс.

  • Убедитесь, что ваш код зафиксирован и нажат, Удаление Xcode, как это временно удаляет git. (Это был вопрос для меня на работе один раз)

  • Загрузите установщики для Xcode 4.0/.1 и 4.2, если вы собираетесь продолжать экспериментировать. (если вы уже оба загружены, весь этот процесс не займет больше 5 минут на SSD)

  • Удалите бета-версию Xcode из командной строки с помощью этой команды:
    sudo <Xcode>/Library/uninstall-devtools --mode=all (подробнее здесь)

  • Перезагрузите компьютер (это важно, не пропустите его!!!)

  • Установите последнюю не-бета-версию Xcode и продолжите разработку.


Если вы хотите использовать обе версии Xcode (4.0/4.1 и 4.2):

Вы должны установить бета-версию AFTER 4.0/4.1, установленную, иначе вы будете перезаписывать новые вещи старыми вещами, и это даст вам много, много непонятных головных болей. Я также рекомендую перезапуск между установками.

Вам нужно установить 4.2 после 4.0/4.1 и в другую папку (я использую /Xcode 4beta/, не помещаю ее в папку, содержащую 4.0/4.1, либо). Я нашел, что лучше узнаю о новой жаре, если я сохраню отдельные разделы моей работы iOS5 и обновляю, что могу, когда у меня есть свободное время.


Если на вашем телефоне установлена ​​бета-версия iOS5, а Xcode 4.0/4.1 не позволит вам создавать на вашем телефоне:

Это связано с тем, что Xcode должен захватывать символы отладки с телефона, прежде чем он может использоваться для devleopment, но только бета-версия Xcode может сделать это для бета-устройства iOS5, поэтому выполните следующие действия:

  • Убедитесь, что ваш телефон подключен и включен, и что ваш профиль/сертификаты безопасности все проверяются.

  • Закройте проект в Xcode 4.0/4.1.

  • Откройте резервную копию проекта в Xcode 4.2 и проверьте организатор. Вы должны либо иметь зеленую точку рядом с телефоном (при условии, что все ваши настройки работают), либо она должна собирать символы отладки. Позвольте этому закончить, а затем построить ваш проект. Это не должно быть успешной сборкой, и вам не нужно устанавливать приложение на телефон, иногда вам даже не нужно строить, Xcode может быть непостоянной любовницей.

  • Закройте проект в Xcode 4.2.

  • Откройте резервную копию проекта в Xcode 4.0, теперь вы сможете создавать и устанавливать на свой телефон, как обычно.

  • Теперь Xcode 4.0/4.1 сможет использовать ваше устройство для разработки до перезагрузки компьютера.

Ответ 4

Контроллер просмотра и Контрольный контроллер навигации или имя параметра (инспектор атрибутов)

Определить контекст (проверено) непроверено.