2010-06-09 8 views
19

Me pregunto si, al construir una aplicación de iPhone para el simulador, hay DEFINEs especiales agregados que me permiten compilar condicionalmente para este caso?Xcode, iPhone: ¿Cómo detectar el objetivo del simulador en tiempo de compilación?

Si no, tendré que agregar mis propios objetivos para este caso, pero prefiero tener un modo automático de detección.

Como alternativa, ¿existe una forma dinámica de saber cuándo mi código se ejecuta en el simulador? Me refiero a algo que está documentado. Estuve buscando en los documentos por un tiempo pero todavía no tuve suerte.

Respuesta

53

Para comprobar el tiempo de compilación que necesita TARGET_IPHONE_SIMULATOR definido en TargetConditionals.h

#if TARGET_IPHONE_SIMULATOR 
// Simulator code 
#endif 

Para comprobar el tiempo de ejecución se puede utilizar, por ejemplo -model método en el UIDevice. Por simulador de iPhone vuelve iPhone Simulator cadena (no estoy seguro sobre el simulador de iPad sin embargo)

+0

A partir de 4.2 cuando el simulador está en el iPad en modo parece volver siempre 'iPhone Simulator'. – zekel

9

@Update:
En iOS 9.0 SDK, se TARGET_IPHONE_SIMULATOR - obsoleto. uso TARGET_OS_SIMULATOR en lugar de TARGET_IPHONE_SIMULATOR

#if TARGET_OS_SIMULATOR 
    // Simulator code 
#endif 
Cuestiones relacionadas