2010-06-09 12 views
19

Mi chiedo se, quando si costruisce un'app per iPhone per il simulatore, vengano aggiunti DEFINI speciali che mi consentono di compilare condizionatamente per questo caso?Xcode, iPhone: come rilevare il target del simulatore al momento della compilazione?

In caso contrario, dovrò aggiungere i miei obiettivi per questo caso, ma preferirei avere un modo automatico di rilevamento.

In alternativa, c'è un modo dinamico per sapere quando il mio codice viene eseguito su Simulator, intendo qualcosa che è documentato? Ho cercato i documenti per un po 'ora ma non ho ancora avuto fortuna.

risposta

53

Per verificare in fase di compilazione è necessario TARGET_IPHONE_SIMULATOR definito TargetConditionals.h

#if TARGET_IPHONE_SIMULATOR 
// Simulator code 
#endif 

Per run-time e verificate è possibile utilizzare per esempio -model metodo UIDevice. Per iPhone simulatore restituisce iPhone Simulator stringa (non sono sicuro di simulatore di iPad però)

+0

Come di 4,2 quando il simulatore è in iPad in modalità sembra tornare sempre 'iPhone Simulator'. – zekel

9

@Update:
In iOS 9.0 SDK, TARGET_IPHONE_SIMULATOR è - deprecato. uso TARGET_OS_SIMULATOR invece di TARGET_IPHONE_SIMULATOR

#if TARGET_OS_SIMULATOR 
    // Simulator code 
#endif 
Problemi correlati