__IPHONE_OS_VERSION_MIN_REQUIRED
se establece en el objetivo Implementación, que representa la versión que el usuario debe ejecutar mínimamente para instalar su aplicación. __IPHONE_OS_VERSION_MAX_ALLOWED
se establece en la versión SDK contra la que está compilando, aunque eso no significa que su aplicación no se ejecutará en versiones más nuevas, pero puede usarla para verificar si algunas características del sistema operativo están disponibles.
Por ejemplo, desde iOS 3.2 tenemos la clase UIBezierPath
. Si está compilando contra SDK 3.1 (para probarlo en el simulador de iPhone), esta nueva clase no está disponible, por lo que el compilador le advertirá que la clase no existe. Muy bien, pero no queremos comentar ese código específico cada vez que lo compilamos contra el SDK anterior, solo para una prueba de simulador. Solo queremos ocultar estos bloques de código y eso es posible gracias a esas macro.
Lea this article on Cocoa with Love para obtener más explicaciones, consejos y trucos.
Pero ¿qué pasa con __IPHONE_OS_VERSION_MAX_ALLOWED (no "_REQUIRED")? – cocoapriest
Vaya, me refiero a MAX_ALLOWED, no hay MAX_REQUIRED definido en absoluto. – Joost
@Joost No puedo pensar en un caso de uso práctico para estas 2 macros – onmyway133