Pregunta

Dos preguntas:

este código

#ifdef __IPHONE_3_0
    // iPhone 3.0 specific stuff
#else
    // iPhone 2.2 specific stuff
#endif

Compila códigos específicos para versiones específicas del iPhone. ¿Cómo podría esto transformarse para compilar para una variedad de dispositivos? Por ejemplo: si la versión de iPhone <3.1 o si la versión> = 3.2, y así una ...

2) ¿Dónde obtengo una lista de todos los condicionales permitidos por Xcode?

Gracias por cualquier ayuda.

¿Fue útil?

Solución

Esas define se encuentran en Availability.h, ubicado dentro de cualquier SDK que esté utilizando. Por ejemplo, puede encontrar una versión para el simulador 3.0 en

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/include/Availability.h

Como nota, es fácil buscar constantes como __IPHONE_3_0 Al resaltarlos, hacer clic con el botón derecho y seleccionar "Saltar a definición" en el menú emergente.

En Availability.h, el encabezado en sí describe en detalle cómo compilar selectivamente para varias versiones. Por ejemplo, para compilar el código solo si la versión del sistema operativo del iPhone es mayor que 3.0, podría usar

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_0
// Your code here
#endif

Tenga en cuenta que esto es para determinar qué incluir en el momento de la compilación, no para habilitar selectivamente el código en función de la versión del sistema operativo que se ejecuta la aplicación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top