Frage

Wenn ich den Basissatz + Aktiv SDK eines iPhone App 3.0 und das Deployment Target 2.2, kann ich die neuen Versionen von Funktionen auf 2.2-Geräte verwenden?

Zum Beispiel erfordert UITableViewCell nun ein Bild gesetzt wird [cell.imageView setImage:image] verwenden, während in 2.2, Sie [cell setImage:image] nennen würden. Wird die neue [cell.imageView setImage:image] Absturz auf 2.2 Geräte mit?

War es hilfreich?

Lösung

Nein Sie können nicht uns OS 3.0 Anrufe auf 2.2. Veraltete Methode sollte als normal zumindest in O 3.e Deprecation in vielen Fällen in dem O verhalten sein, bedeutet nur, dass Apple mit neuen Methoden empfiehlt eher dann diejenigen veralteten; aber diese Methoden in der Zukunft verschwinden.

Sie haben einige Optionen:

  1. Sie einfach die Warnungen zu ignorieren, solange App und Methoden funktionieren tatsächlich auf OS 3.0.
  2. eine Laufzeitprüfung haben die OS-Version, um zu bestimmen, und die entsprechende Methode aufrufen:

    double version = [[[UIDevice currentDevice] systemVersion] doubleValue];
    if (version >= 3.0) {
        [cell.imageView setImage:image];
    } else {
        [cell setImage:image];
    }
    

    oder besser noch:

    if ([cell respondsToSelector:@selector(imageView)]) {
         [cell.imageView setImage:image];
    } else {
         [cell setImage:image];
    }
    

    Beachten Sie, dass eine Kompilierung zu überprüfen, Richtlinien ifdef mit nicht funktionieren

  3. Dropping OS 2.2 Unterstützung. Es ist durchaus sinnvoll für Sie nur 3,0 als auch Ziel zu, wie die Aufnahme von 3.X recht hoch ist. Im Fall meiner kleinen App im Dezember hatte ich 27 Benutzer auf Pre-3.0-Systeme von 2.058 Benutzern. Unnötig zu sagen, diese Option reduziert die getestet werden müssen erheblich.

Andere Tipps

Nein, Sie können nicht O 3.0 Anrufe auf einem 2.x-Gerät verwenden. Ich wäre überrascht, wenn Sie auch eine 3,0-bezogene Anwendung auf einem 2.x-Gerät installieren können.

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