#ifdef #else #endif выбрать версию и функцию iOS sdk?

Я запускаю темное тематическое приложение iOS 6 и 7. Я понимаю, что я могу позвонить [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];, чтобы сделать панель состояния iOS 7 подходящей для темной темы.

Проблема заключается в том, что я отправлю свое приложение в App Store, и в настоящее время Xcode 5 не готов к этому, поэтому я должен использовать Xcode 4.6.x для выполнения этой задачи. Однако с Xcode 4.6 я не могу скомпилировать новый метод из iOS 7. Я думаю, что мне нужно сделать что-то вроде "if ios7", а затем сделать [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; и изменить положение моего окна приложения.

Я пытаюсь сделать это с помощью #ifdef... #else... этот код [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; внутри viewDidLoad.

Может кто-нибудь помочь понять, как использовать #ifdef... с помощью метода в некоторых функциях.

Спасибо большое!!!!

Ответы

Ответ 1

Пока я не уверен на 100%, я могу полностью ответить на этот вопрос, не нарушая NDA, я сделаю все возможное, чтобы указать вам в правильном направлении.

Вам нужно использовать __IPHONE_* #defines в Availability.h

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_6_0
  // iOS 6+ code here
#else
  // Pre iOS 6 code here
#endif

Помните, что #if и #ifdef будут определять, какой код скомпилирован, это не механизм обнаружения времени выполнения.

Вы можете легко получить доступ к Availability.h с помощью функции "Быстрый доступ" и ввода "Доступность".

Ответ 2

взгляните на ответToSelector

 [delegate respondsToSelector:@selector(myMethod:)]