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
}
我的 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
}