iPhone Überprüfung der Firmware-Version
-
21-08-2019 - |
Frage
HALLO alle
Ich will eine App für das iPhone 2.2 machen. * Und für die Version 3.0. Einige Verfahren in 2.2 * wird in 3.0 veraltet. (Wie UITableViewCell setText und setLabel)
Gibt es eine Möglichkeit, die Firmware-Version zu überprüfen, auf dem iPhone verwendet wird und verschiedene Verfahren einstellen verwenden
Lösung
Sie müssen Pre-Prozessor-Richtlinien für die bedingte Kompilierung verwenden, wie __IPHONE_3_0 und bauen zwei separate ausführbare Dateien.
Zum Beispiel:
#ifdef __IPHONE_3_0 // code specific to version 3 #else // code specific to version 2 #end
Wenn Sie die Version zur Laufzeit ermitteln möchten, können Sie [[UIDevice currentDevice] Systemversion]. Es gibt die Zeichenfolge mit der aktuellen Version des iPhone OS.
Andere Tipps
Wie ich bereits in den Kommentaren erwähnt, überprüfen: Wie ein bestimmtes Ziel iPhone-Version?
Wie in den anderen erwähnten Thread erwähnt, während Sie Pre-Prozessor-Richtlinien verwenden können zwei Anwendungen von einer Code-Basis zu erzeugen, müssen Sie noch zwei Anwendungen (eine für 2.x und eine für 3.x)
Eine Kompilierung Richtlinie kann nicht verwendet werden, um eine Laufzeit Entscheidung zu treffen.
Es gibt noch mehr Detail in dem anderen Thread.
Mögliche Lösung, überprüfen nur respondsToSelector verwenden. Zum Beispiel -
CGSize expectedLabelSize;
if ([subTitle respondsToSelector:@selector(sizeWithAttributes:)])
{
expectedLabelSize = [subTitle sizeWithAttributes:@{NSFontAttributeName:subTitleLabel.font}];
}else{
expectedLabelSize = [subTitle sizeWithFont:subTitleLabel.font constrainedToSize:subTitleLabel.frame.size lineBreakMode:NSLineBreakByWordWrapping];
}