2016-09-17 13 views
2

У нас есть проблема с прошивкой SDK в Xcode 8.UIScreen в Xcode В начале 8

Мы используем метод [UIScreen mainScreen] в нашем проекте. Этот метод доступен из iOS 2.0.

Но когда мы создали продукт в Xcode 8 и отправили его для просмотра, приложение было отклонено. Сюрприз: в новом SDK (Xcode 8 GM) этот метод помечен как «, доступный от iOS 10.0». Другими словами - теперь iOS 9 идентифицирует [UIScreen mainScreen] как «непубличный API».

Возможно, это ошибка Apple.

Наш вопрос:
1) Мы хотим продолжать использовать этот метод.
2) Мы хотим поддерживать iOS 8 и iOS 9.
3) Мы хотим использовать Xcode 8.
Возможно ли это?

ответ

0

Свойства класса являются объектной функцией C, доступной в Xcode 8, и выглядит так: mainScreen был реорганизован в API to be one. Ошибка mainScreen, являющаяся непубличной, кажется ошибочной ошибкой/ошибкой на конце Apple, но если вы используете свойство access класса, ошибка может уйти.

Хорошая новость заключается в том, что, поскольку это языковая функция, а не версия iOS, вы должны иметь возможность использовать синтаксис свойств класса, то есть UIScreen.mainScreen, и продолжать поддерживать iOS 8-9.

p.s. mainBundle также теперь является свойством класса, поэтому, если вы его используете, возможно, это приведет к той же ошибке.