Xcode 8中的UIScreen主屏幕

时间:2016-09-17 16:59:15

标签: ios xcode8 ios9 iphone-privateapi uiscreen

我们在Xcode 8中遇到iOS SDK问题。

我们在项目中使用方法[UIScreen mainScreen]。此方法可从iOS 2.0获得。

但是当我们在Xcode 8中构建产品并将其提交审核时,app被拒绝了。惊喜:在新的SDK( Xcode 8 GM )中,此方法标记为“可从iOS 10.0 ”获得。换句话说 - 现在iOS 9将[UIScreen mainScreen]标识为“非公共API ”。

也许这是Apple的错误。

我们的问题:
1)我们想继续使用这种方法 2)我们想支持iOS 8和iOS 9 3)我们想要使用Xcode 8 这可能吗?

1 个答案:

答案 0 :(得分:0)

类属性是Xcode 8中提供的Objective-C功能,看起来mainScreen已在API to be one中重构。在非公开的情况下,mainScreen的错误似乎是一个误导性的错误/错误,但如果您使用类属性访问器,错误可能会消失。

好消息是,由于它是一种语言功能,而不是特定于iOS版本,因此您应该能够采用类属性语法,即UIScreen.mainScreen,并继续支持iOS 8-9。

P.S。 mainBundle现在也是一个类属性,所以如果你使用它,它可能会触发相同的错误。

相关问题