【发布时间】:2015-10-06 18:36:18
【问题描述】:
我有以下代码,它使用闭包来延迟初始化属性:
lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator = {
let coordinator = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
do {
try coordinator.addPersistentStoreWithType(NSInMemoryStoreType, configuration: nil, URL: nil, options: nil)
} catch let err as NSError {
XCTFail("error creating store: \(err)")
}
return coordinator
}()
编写的代码会产生错误:
调用可以抛出,但是没有标记'try'并且错误没有处理
代码用“try”标记,错误得到处理。当我将闭包移动到一个单独的函数中并在此处调用它时,一切都按预期工作。
关于闭包和 do/try/catch 是否有我不理解的地方,或者我在出色的 Swift 2 编译器中遇到了(又一个!)错误?
【问题讨论】: