__IPHONE_OS_VERSION_MIN_REQUIRED
- это на самом деле просто параметр сборки, который вы можете использовать в препроцессоре для изменения кода перед компиляцией. Нет, Apple не компилирует ваш код для каждого iPhone. Они не могут, так как вы не даете им код. Вы можете использовать проверку времени компиляции, чтобы определить, например, нужно ли вам компилировать код для эмуляции новой функции в старых версиях ОС. Однако вы используете проверку версии во время выполнения, чтобы определить, следует ли использовать встроенную или эмулированную версию этой функции.
Например, iAds были добавлены в 4.0. В настоящее время вы поддерживаете 4.0 и более поздние версии, но планируете добавить поддержку для 3.2 в будущем. Вы создаете код для отображения других объявлений в более старых версиях, используя проверку во время выполнения, чтобы определить, следует ли использовать iAds или другое, но вы не хотите, чтобы это было в каких-либо выпусках, пока остальная часть приложения не будет готова для версии 3.2, поскольку сделайте ваше приложение больше. Вы используете проверку времени компиляции, чтобы препроцессор исключил этот код из ваших выпусков. Используя макрос минимальной версии, вы можете легко добавить код в свой выпуск, изменив настройку минимальной сборки версии.