Bedingte Unterstützung von iOS 6-Funktionen in einer iOS 5-App

7

Wie können Sie Funktionen von iOS6 in einer App unterstützen, bei der Minimal Deployment Target auf iOS 5.0 eingestellt ist?

Wenn ein Benutzer beispielsweise iOS 5 hat, wird er ein UIActionSheet sehen, wenn der Benutzer iOS 6 hat, wird er ein anderes UIActionSheet für iOS 6 sehen? Wie machst Du das? Ich habe Xcode 4.5 und möchte eine App unter iOS 5 laufen.

    
Sergey Grischyov 25.09.2012, 19:34
quelle

1 Antwort

19

Sie sollten immer lieber verfügbare Methoden / Features als iOS-Versionen erkennen und dann davon ausgehen, dass eine Methode verfügbar ist.

Siehe Apple-Dokumentation .

In iOS 5 würden wir beispielsweise einen Modal View-Controller anzeigen:

%Vor%

In iOS 6 ist die presentModalViewController:animated: -Methode von UIViewController Veraltet, Sie sollten presentViewController:animated:completion: in iOS 6 verwenden, aber woher wissen Sie, wann was zu verwenden ist?

Sie könnten eine iOS-Version erkennen und ein if-Statement diktieren, wenn Sie das erstere oder das letzte verwenden, aber dies ist fragil, Sie werden einen Fehler machen, vielleicht wird ein neueres Betriebssystem in Zukunft einen neuen Weg haben, dies zu tun.

Der richtige Umgang damit ist:

%Vor%

Sie könnten sogar argumentieren, dass Sie strenger sein sollten und etwas wie:

tun sollten %Vor%

Ich bin nicht sicher über Ihr UIActionSheet -Beispiel, soweit mir bekannt ist, ist dies unter iOS 5 und 6 dasselbe. Vielleicht denken Sie an UIActivityViewController für die Freigabe und möchten vielleicht auf ein% zurückfallen. co_de%, wenn Sie auf iOS 5 sind. Sie können also prüfen, ob eine Klasse verfügbar ist, siehe hier wie man das macht.

    
Daniel 25.09.2012, 19:47
quelle