Frage

Zwei Fragen:

Dieser Code

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

Kompiliert bestimmte Codes für bestimmte Versionen des iPhone. Wie könnte dies so transformiert werden, um für eine Reihe von Geräten kompiliert zu werden? Zum Beispiel: Wenn iPhone -Version <3.1 oder wenn Version> = 3.2 und so einer ...

2) Wo bekomme ich eine Liste aller von Xcode zugelassenen Bedingungen?

Danke für jede Hilfe.

War es hilfreich?

Lösung

Diese Definieren werden in gefunden Availability.h, befindet sich in dem von Ihnen verwendeten SDK. Zum Beispiel finden Sie eine Version für den 3.0 Simulator unter

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

Als Notiz ist es einfach, Konstanten wie nachzuschlagen, wie __IPHONE_3_0 Indem Sie sie hervorheben, mit der rechten Maustaste klicken und aus dem Popup-Menü "Spring to Definition" auswählen.

Im Availability.h, der Header selbst beschreibt ausführlich, wie man für verschiedene Versionen selektiv kompiliert wird. Zum Beispiel, um Code nur zu kompilieren, wenn die iPhone -Betriebssystemversion größer als 3.0 ist, können Sie verwenden

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

Beachten Sie, dass dies zur Ermittlung des Einbeziehung von zum Kompilieren von Zeit ist und nicht zum selektiven Code basierend auf der Version des Betriebssystems, auf der die Anwendung ausgeführt wird, selektiv aktiviert wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top