Какие макросы Xcode можно использовать для проверки версии ОС компилирующего компьютера? - PullRequest
0 голосов
/ 19 августа 2011

Создание приложения для iOS с использованием разработчиков Xcode 4: 2, одно с 10.6.8 и одно с 10.7.В 10.7 интерфейс NSURLConnectionDelegate является явным: он определен и может быть добавлен в объявление интерфейса.Однако в 10.6.8 он не определен, и генерируется ошибка компиляции ( NSURLConnectionDelegate: не удается найти объявление протокола ).Эту ошибку можно исправить, просто удалив объявление.Я ищу макрос компилятора, который определяет версию ОС, на которой строится код, чтобы я мог изменить код так, чтобы он был совместим с обеими версиями ОС.Что-то вроде:

#if _CURRENT_OS_X_IS_10_7_OR_HIGHER
@interface appDelegate : NSObject<UIApplicationDelegate, NSURLConnectionDelegate> {
#else
@interface appDelegate : NSObject<UIApplicationDelegate> {
#endif

1 Ответ

1 голос
/ 19 августа 2011

Вы сможете использовать NSAppKitVersionNumber и / или NSFoundationVersionNumber17_0

РЕДАКТИРОВАТЬ

При компиляции для iOS вы не сможетеиспользовать любой макрос из среды Mac OS.Ваш единственный шанс - предопределенные макросы Xcode / GCC.

Вы можете проверить их с помощью:

gcc -arch i386 -dM -E - < /dev/null | sort

Это интересно:

__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
...