Frage

ich habe iphone mit os ver. 2.0 las ich, dass alle appplication für App Store muss 3,0 os.so ausgeführt werden, wie könnte ich den Antrag stellen in beide laufen firmware.is einen Weg dort i ver wenn os erkennen kann.> 3.0 dann verschiedene statments laufen statments für niedrigere alse laufen als 3,0 os.currently dieses verwende ich.

#if __IPHONE_3_0
cell.textLabel.text=cellValue;
[cell.textLabel setFont:[UIFont systemFontOfSize:15.0]];
[cell.textLabel setLineBreakMode:UILineBreakModeTailTruncation];
#else
cell.text=cellValue;    
[cell setFont:[UIFont systemFontOfSize:15.0]];
[cell setLineBreakMode:UILineBreakModeTailTruncation];  
#endif

wird es auf beiden Firmware ausgeführt

ich möchte meine app machen auf> = 3,0 os und niedriger als diese ausgeführt werden ... bitte helft mir

, wie ich für veraltete Methoden meine Anwendung prüfe ... Ich kann nur diese Zeile sehen als veraltet cell.text = Cellvalue;

gibt es etwas zu change.i haben neue sdk iphone_sdk_3.0__leopard__9m2736__final.dmg

genannt installiert
War es hilfreich?

Lösung

Ihr Code oben wird nicht auf beiden Sätze von OSes laufen. Wenn Sie # if-Anweisungen verwenden, sind ohne Sie grundsätzlich Code für eine Version des Betriebssystems für das jeweilige Build. Mit anderen Worten, jede Version, die Sie bauen ein, wenn Sie __IPHONE_3_0 und eine definieren, wenn Sie dies nicht tun, wird der Code für die andere ausschließen.

Was Sie tun, baut zwei ausführbare Dateien, eine, die für __IPHONE_3_0 und eine andere für gebaut wird! __IPHONE_3_0.

Wenn Sie eine ausführbare Datei zu bauen, dass eine App, die auf beiden läuft, dann müssen Sie die # if-Anweisungen mit Laufzeit ifs ersetzen, keine Zeit #ifs kompilieren, wie:

if (theOS >= kiPhone3)
   ....
else
   ....

Sie können auch in Bibliotheken verknüpfen, die 3.0 nur, aber Test für die Verfügbarkeit des Rahmens zur Laufzeit, und dann den Anruf überspringen, wenn die Methoden nicht verfügbar sind. Es gibt verschiedene Anrufe Sie verwenden müssen, eine für die Überprüfung, ob ein Verfahren vorhanden ist, und einen für die, wenn eine Klasse zur Verfügung:

Class newClass = (NSClassFromString(@"NewClassName"));
    if (newClass != nil)

Das Letzte, was gibt es eine neuere Version des SDK als die, die Sie erwähnen.

Viel Glück!

Andere Tipps

Es war ein ähnliche Post vor einiger Zeit. Werfen Sie einen Blick auf Apples MailComposer Probe en Beispiel für eine Anwendung, um zu sehen, die sowohl 3.0 und 2.x-Firmware unterstützt

Wenn Sie es gegen den 2.0 build (oder 2.1 oder 2.2.1, usw.) SDK, wird es an diesem SDK laufen und einer späteren Version, es sei denn, Apple-spezifisch Unterstützung einzustellen für das SDK. Ich sehe viele Apps im App Store, die sagen, dass sie mit dem iPhone OS 2.x arbeiten oder später und sie laufen auf meinem iPhone 3G 3.1 ausgeführt wird.

Die if-else-Richtlinien einen Teil des Codes aus dem Compiler verstecken, damit es nicht auf beide Software ausgeführt wird.

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