【问题标题】:UIScreen mainScreen in Xcode 8Xcode 8 中的 UIScreen mainScreen
【发布时间】:2017-01-25 17:50:59
【问题描述】:

Xcode 8 中的 iOS SDK 存在问题。

我们在项目中使用[UIScreen mainScreen] 方法。此方法适用于 iOS 2.0。

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

也许这是苹果的错误。

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

【问题讨论】:

    标签: ios xcode8 ios9 iphone-privateapi uiscreen


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-17
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 2012-09-06
      • 2015-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多