Ich muss iPhone 4S vom iPhone 4 unterscheiden. Ich ging durch die Pfosten und erhielt den folgenden Code. Bitte lassen Sie es mich wissen, wenn dies der einzige Weg ist, dies zu tun und zu bestätigen, dass es kein Problem von Apple gibt, wenn es benutzt wird.
%Vor%Für 4S wird iPhoneVersion String mir iPhone4,1 geben und iPhone 4 wird iPhone3,1 sagen.
Danke für Ihre Vorschläge.
iPhone 4 kann im Fall des CDMA-Modells auch als iPhone3,3
bezeichnet werden ( hier ist ein nicht-recht -up-to-date-Liste ). Im Allgemeinen ist es viel sicherer und "vorwärtskompatibel", um die Fähigkeiten der Plattform zu testen (z. B. [someSystemClass respondsToSelector:@selector(someMethodName)]
oder ähnliches), anstatt die Fähigkeiten basierend auf dem Gerätemodell manuell zu bestimmen. Können Sie sagen, warum Sie zwischen iPhone 4 und 4S unterscheiden müssen?
Wie andere vorgeschlagen haben, sollten Sie sich nicht auf ein bestimmtes Gerät beschränken (das wird unterbrochen, wenn Apple Variationen oder das nächste Modell auslagert), sondern Sie sollten sich darauf konzentrieren, welche Funktionen Sie benötigen. Gerade die einzigen iPhone-Anwendungen, die beim Start des iPads kaputt gingen, waren diejenigen, die die Erkennung von Hardware-Modellen durchgeführt hatten, weil sie keine Ahnung hatten, dass das iPad kommen würde und somit nicht nach dieser spezifischen Geräte-ID suchen konnten.
Wenn Ihre Anwendung aufgrund bestimmter Hardware-Anforderungen wie der Bluetooth 4.0 Low Power-Unterstützung nicht auf einem iPhone 4 ausgeführt werden kann, würden Sie am besten dazu dienen, das bluetooth-le
zu Ihrem UIRequiredDeviceCapabilities
in Ihrer Info.plist hinzuzufügen Ich beschreibe hier . Dies verhindert, dass Benutzer Ihre Anwendung sogar auf einem Nicht-4S-Gerät installieren, lässt aber die Möglichkeit offen, dass dies für zukünftige iPhones funktioniert, die höchstwahrscheinlich über Bluetooth Low Power-Hardware verfügen.
Wenn Sie die Hardwarefunktionen skalieren müssen, um den Vorteil des A5 zu nutzen, sollten Sie nach Unterstützung für einige der neuen OpenGL ES-Erweiterungen des A5 suchen, indem Sie glGetString( GL_EXTENSIONS )
verwenden und nach Erweiterungen wie% suchen. Code%. Diese Erweiterungen sind nicht auf dem A4 vorhanden, aber sind dort auf dem A5 und sollten für die nächsten paar Iterationen von Apples Hardware da sein.
Sie können möglicherweise auch das leicht dokumentierte neue Core-Bluetooth-Framework verwenden, um zu testen, ob 4.0 Low Power Hardware in Ihrem Gerät zur Laufzeit vorhanden ist, aber ich habe nicht viel Zeit mit diesem Framework verbracht.