我遇到了一些我无法弄清楚的代码问题.在我安装了Xcode 7 beta并将我的swift代码转换为Swift 2之后
码:
override func viewDidAppear(animated: Bool) {
let appDelegate: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context: NSManagedObjectContext = AppDel.managedObjectContext
let request = NSFetchRequest(entityName: "PlayerList")
list = Context.executeFetchRequest(request)
tableView.reloadData()
}
Run Code Online (Sandbox Code Playgroud)
截图:

Mar*_*n R 54
从Swift 2开始,产生错误的Cocoa方法被转换为抛出错误的Swift函数.
而不是像Swift 1.x中的可选返回值和错误参数:
var error : NSError?
if let result = context.executeFetchRequest(request, error: &error) {
// success ...
list = result
} else {
// failure
println("Fetch failed: \(error!.localizedDescription)")
}
Run Code Online (Sandbox Code Playgroud)
在Swift 2中,该方法现在返回一个非可选的,并在错误情况下抛出一个错误,必须使用try-catch处理:
do {
list = try context.executeFetchRequest(request)
// success ...
} catch let error as NSError {
// failure
print("Fetch failed: \(error.localizedDescription)")
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅" 使用Swift with Cocoa和Objective-C"文档中的"采用Cocoa设计模式" 中的"错误处理" .
| 归档时间: |
|
| 查看次数: |
15495 次 |
| 最近记录: |