В чем разница между этими двумя макросами? - PullRequest
10 голосов
/ 17 июля 2010

В чем разница между

__ IPHONE_OS_VERSION_MAX_ALLOWED

и

__ IPHONE_OS_VERSION_MIN_REQUIRED

Который должениспользовать для обнаружения старых / новых SDK, например

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_2

1 Ответ

14 голосов
/ 17 июля 2010

__IPHONE_OS_VERSION_MIN_REQUIRED установлен на цель развертывания, которая представляет версию, которую пользователь должен минимально запустить, чтобы установить ваше приложение. __IPHONE_OS_VERSION_MAX_ALLOWED установлен на версию SDK, с которой вы компилируете, хотя это не значит, что ваше приложение не будет работать на более новых версиях, но вы можете использовать его, чтобы проверить, доступны ли некоторые функции ОС.

Например, начиная с iOS 3.2 у нас есть класс UIBezierPath. Если вы компилируете с использованием SDK 3.1 (для тестирования в iPhone Simulator), этот новый класс недоступен, поэтому компилятор выдаст вам предупреждение о том, что этот класс не существует. Справедливо, но мы не хотим комментировать этот конкретный код каждый раз, когда собираем его на основе более старого SDK, просто для теста на симуляторе. Мы просто хотим скрыть эти блоки кода, и это стало возможным благодаря этим макросам.

Пожалуйста, прочитайте эту статью о Какао с любовью для более подробного объяснения, советов и подсказок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...