2009-05-14 4 views
26

Esiste una direttiva del compilatore che posso utilizzare per compilare una riga di codice diversa quando si punta il simulatore al contrario del mio dispositivo. Qualcosa di simile:Compilazione condizionale quando si esegue in Simulatore anziché su un dispositivo

# IF SIMULATOR 
[self.imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
# ELSE 
[self.imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera]; 
# END 

EDIT

Direct link to docs.

risposta

52
#if TARGET_IPHONE_SIMULATOR 
[self.imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
#else 
[self.imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera]; 
#endif 
11

Per la cronaca, ecco un altro metodo che Apple utilizza in alcuni dei loro codice di esempio ufficiale:

#if TARGET_CPU_ARM 
    // Only executes on an iPhone or iPod touch device 
    [self.imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera]; 
#else 
    // Only executes on the Simulator 
    [self.imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
#endif 
+2

In in questo caso sembra che il codice di esempio di Apple sia sbagliato, questo codice è vero Se si cambiavano architetture per dispositivi (o Mac), si rompono. – ThomasW