Что такое различие между этими 2 макросы?

Между чем различие

__ IPHONE_OS_VERSION_MAX_ALLOWED

и

__ IPHONE_OS_VERSION_MIN_REQUIRED

Который должен я использовать для обнаружения старого/нового SDKs, как

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_2
10
задан cocoapriest 16 July 2010 в 22:44
поделиться

1 ответ

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

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

Прочтите эту статью о «Какао с любовью» для дальнейших объяснений, советов и приемов.

14
ответ дан 3 December 2019 в 23:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: