2016-09-17 6 views
2

Wir haben ein Problem mit iOS SDK in Xcode 8.UIScreen mainscreen in Xcode 8

Wir Methode verwenden [UIScreen mainScreen] in unserem Projekt. Diese Methode ist ab iOS 2.0 verfügbar.

Aber als wir Produkt in Xcode 8 gebaut und zur Überprüfung eingereicht, App abgelehnt wurde. Überraschung: Im neuen SDK (Xcode 8 GM) ist diese Methode markiert als "verfügbar von iOS 10.0". Mit anderen Worten - jetzt identifiziert iOS 9 [UIScreen mainScreen] als "nicht-öffentliche API".

Vielleicht ist das Apples Bug.

Unsere Frage:
1) Wir wollen mit dieser Methode, um fortzufahren.
2) Wir wollen iOS 8 und iOS 9 unterstützen.
3) Wir wollen Xcode 8 verwenden.
Ist das möglich?

Antwort

0

Klasseneigenschaften sind eine Objective-C-Funktion, die in Xcode 8 verfügbar ist, und es sieht so aus, als ob mainScreen in der API to be one refaktoriert wurde. Der Fehler, dass mainScreen nicht öffentlich ist, scheint ein irreführender Fehler/Fehler auf Apples Ende zu sein, aber wenn Sie den Klasseneigenschaftsaccessor verwenden, könnte der Fehler verschwinden.

Die gute Nachricht ist, da es ein Sprachfeature ist, nicht iOS Version spezifisch, sollten Sie in der Lage sein, Klasseneigenschaftssyntax, d. H. UIScreen.mainScreen, und weiterhin iOS 8-9 zu unterstützen.

p.s. mainBundle ist jetzt auch eine Klasseneigenschaft, also wenn Sie das verwenden, ist es möglich, dass es den gleichen Fehler auslöst.