Почему __IPHONE_OS_VERSION_MIN_REQUIRED возвращает базовый SDK вместо цели развертывания?__IPHONE_OS_VERSION_MIN_REQUIRED не возвращает цель развертывания?
Я хочу использовать класс, который может работать только на iOS 4.3 и выше, но по-прежнему поддерживает 4.0 и выше. Для этого я утверждаю, что если попытаюсь использовать этот класс на устройствах с версией iOS ниже 4.3. Чтобы избежать утверждения, я избегаю кода внутри кода, проверяя наличие методов 4.3. Цель установки в настоящее время установлена в 4.0.
Однако, поскольку утверждения будут выполняться только при запуске приложения на старом устройстве, я также хочу добавить предупреждение, если цель развертывания меньше 4.3. Я пытаюсь использовать __IPHONE_OS_VERSION_MIN_REQUIRED
. Однако это как-то продолжает возвращать 50000
(базовый SDK) вместо чего-то ниже 43000
, и я не могу понять, почему.
Код:
NSLog(@"Deployment target: %i", __IPHONE_OS_VERSION_MIN_REQUIRED); // Returns 50000 instead of 40000.
#if __IPHONE_OS_VERSION_MIN_REQUIRED < 43000
// Never gets here
NSLog(@"%@", @"WARNING! NWMethodWrapper does not work on iOS versions below 4.3. If you insist on supporting older iOS versions, make sure you do not call NWMethodWrapper methods unless dlsym(RTLD_DEFAULT,\"imp_implementationWithBlock\") evaluates to true.");
#endif
NSAssert(dlsym(RTLD_DEFAULT,"imp_implementationWithBlock"), @"NWMethodWrapper uses methods that are only available from iOS 4.3 and later."); // Asserts, as appropriate (running on iOS 4.2.1).
Edit: Моя цель развертывания уже установлена на 4.0, поэтому я прошу этот вопрос.
Большое вам спасибо! Мы должны установить Development Target для проекта, который включает файл, который мне нужен! : D – VietHung