swift 2.0 与 iOS 7 的兼容性

swift 2.0 compatibility with iOS 7

我的 swift 1.2 代码与 ios 7.1 到 8.4 兼容。然后当 Apple 发布 IOS 9 时,我将我的代码迁移到 swift 2,我的应用程序现在支持 iOS 8 到 9,但不适用于 iOS 7。

例如,try catch 与 iOS 7 不兼容,Xcode 将其标记为错误。

var error: NSError? 
do {
   try NSFileManager.defaultManager().createDirectoryAtPath(dataPath, withIntermediateDirectories: false, attributes: nil)
} catch let error1 as NSError {
  error = error1
}

此外,我在使用 UIAlertController 时遇到问题,因为 xcode 给了我以下标签 @available(iOS 8.0, *)

如何使这两个问题与 iOS7 兼容?

对于 UIAlertController,您可以使用下面的代码,但是对于 try catch,我的 XCode 上没有显示任何错误。

           if #available(iOS 8.0, *) {
                let alertController = UIAlertController(title: "提示", message: hint+"不能为空", preferredStyle: .Alert)
                let OKAlert = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil)
                alertController.addAction(OKAlert)
                self.presentViewController(alertController, animated: true, completion: nil)
            } else {
                let alertController: UIAlertView = UIAlertView(title: "提示", message: "不能为空", delegate: nil, cancelButtonTitle: "OK")
                alertController.show()
            }

编辑:

只是想知道你能不能试试:

if #available(iOS 8.0, *) {
do {
    let str = try NSString(contentsOfFile: "Foo.bar",
                           encoding: NSUTF8StringEncoding)
}
catch let error as NSError {
    print(error.localizedDescription)
}
}else{
#your code works on ios7
}