我正在使用Xcode 6和Swift开发一款仅适用于iPad的应用程序,使用UISplitViewController。该应用程序应支持iOS 7.1及更高版本。我将项目的部署目标设置为iOS 7.1,并保持SDK版本为8.0以支持Swift。我曾经在Xcode 6 beta 6上拥有一个可工作的版本,但是在将Xcode升级到gold master版本后,该应用程序在iOS 7.1(模拟器和设备)上不再起作用。
即使使用Xcode GM提供的主细节模板创建一个空白应用程序,在iOS 7.1上也无法工作。我已经在空白应用程序的生成AppDelegate中禁用了displayModeButtonItem,因为这在iOS 7上不受支持,但是该应用程序在didFinishLaunchingWithOption委托方法的第一行崩溃。
代码:
即使使用Xcode GM提供的主细节模板创建一个空白应用程序,在iOS 7.1上也无法工作。我已经在空白应用程序的生成AppDelegate中禁用了displayModeButtonItem,因为这在iOS 7上不受支持,但是该应用程序在didFinishLaunchingWithOption委托方法的第一行崩溃。
代码:
func application(application: UIApllication, didFinishLaunchingWithOptions: [NSObject: AnyObject]?) -> Bool {
let splitViewController = self.windows!.rootViewController as UISplitViewController
let navigationController = splitViewController.viewControllers[splitViewContoller.viewControllers.count-1] as UINavigationController
splitViewController.delegate = self
}
第一行会导致错误访问异常。
使用Xcode 6是否可以为iOS 7编写分割视图应用程序?在iOS SDK 7和8之间的UISplitViewController差异巨大。查看苹果SDK文档中的类参考,它看起来像是对UISplitViewController的完全重写。
编辑: 我刚刚意识到,在Xcode 6 GM或Xcode 6.0.1中打开我的应用程序的故事板后,XML中的某些版本信息发生了变化。如果我还原这些更改并在不打开Xcode 6 GM或6.0.1中的故事板的情况下重新编译我的应用程序,则该应用程序可以在iOS 7.1上正常工作。
编辑(2014年10月21日): 在XCode 6.1中仍存在问题。