Home FAQ iPhone FAQ - Allgemein Wie kann ich im Code nach Target-Device unterscheiden?

iPhone Gewinnspiel

Wie kann ich im Code nach Target-Device unterscheiden? PDF Drucken E-Mail
Share
Geschrieben von: Philipp   
FRIDAY, 25 JULY 2008 16:33

FRAGE:
Wie kann ich im Code nach Target-Device unterscheiden?

ANTWORT:

        Es gibt einige Präprozessor-Direktiven, welche in jedem Projekt zur Verfügung stehen. Je nach dem ob Ihr für den Simulator oder für das Gerät direkt kompeliert, findet Ihr auf Eurer Platte  unter
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.0.sdk/usr/include/
  oder eben unter
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/usr/include/
eine Datei namens TargetConditionals.h

Dort findet Ihr u.a. die defines TARGET_OS_IPHONE und TARGET_IPHONE_SIMULATOR. Das define TARGET_OS_IPHONE ist sowohl für den Simulator als auch für das tatsächliche iPhone aktiv, wohin gegen jedoch das define TARGET_IPHONE_SIMULATOR nur für den Simulator aktiv ist.

Um nun einige Programmabschnitte in eurem Code nicht für den Simulator oder aber sogar nur für diesen zu kompelieren, könnt Ihr diese Code-Abschnitte wie folgt ausgrenzen:

#if defined(TARGET_IPHONE_SIMULATOR) &&  (TARGET_IPHONE_SIMULATOR==0)
  // mache etwas wenn es das iPhone aber nicht der simulator ist
#else
  // ansonsten mache etwas anderes
#endif

// oder

#if defined(TARGET_IPHONE_SIMULATOR) &&  (TARGET_IPHONE_SIMULATOR==1)
  // mache etwas wenn es definitiv der iPhone Simulator ist
#else
  // ansonsten mache etwas anderes
#endif

Eine andere und auch kürzere Variante, um zu ermitteln ob es sich um den Simulator handelt oder nicht, wäre folgende:
#if !(TARGET_IPHONE_SIMULATOR)
   // es handelt sich NICHT um den Simulator
#else
   // es handelt sich um den Simulator
#endif


 



 


 


Ihren Kommentar hinzufügen

Ihr Name:
Ihre Webseite:
Betreff:
Kommentar:
  Bild, welches den Sicherheitscode enthält
Sicherheitscode:
LAST_UPDATED2