【发布时间】:2015-11-09 07:38:34
【问题描述】:
我有一个现有的 iOS 应用程序,它支持 iOS 8。我只想为 iOS 9 添加新功能。
我为 iOS 9 创建了一个新的故事板,它使用了 iOS 9 的功能,如 UIStackView。根据设备操作系统版本实例化适当的故事板文件。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let storyboard: UIStoryboard
if #available(iOS 9, *, *) {
storyboard = UIStoryboard(name: "Main", bundle: nil)
} else {
storyboard = UIStoryboard(name: "MainOld", bundle: nil)
}
let mainViewController = storyboard.instantiateInitialViewController()
window?.rootViewController = mainViewController
window?.makeKeyAndVisible()
return true
}
但我在 Main.storyboard "UIStackView before iOS 9.0" 上遇到编译错误
我正在使用 Xcode 7 beta 5。
如何在使用 Swift 2 #availability check 的 iOS 8 支持项目上使用 iOS 9 相关功能
【问题讨论】:
-
@Bannings,开发者论坛评论建议将部署目标更改为 iOS 9。但我希望我的应用程序应该支持 iOS 8,仅适用于 iOS 9,我想添加新功能。因为 swift 提供语言级别的支持 #available 来验证功能的可用性。我应该能够添加正确的验证。
-
无论您是否使用#available,该错误都来自情节提要。
-
是的。但我正在根据 iOS 版本(使用#available 检查)实例化正确的故事板对象。看起来,我应该只在代码中而不是在故事板中使用新功能。