根据文档,我试图存储removePersistentStore(_:)
的返回值,显然是Bool
:
我这样使用它:
let removed = try! storeCoordinator.removePersistentStore(store)
与此相关的是什么?我错过了什么吗?
答案 0 :(得分:2)
返回值
YES
如果商店已被删除,则为NO
。
NSPersistentStoreCoordinator
文档中的指的是Objective-C签名 方法:
- (BOOL)removePersistentStore:(NSPersistentStore *)store
error:(NSError * _Nullable *)error
在Swift中,该方法抛出错误而不是返回一个布尔值:
func removePersistentStore(_ store: NSPersistentStore) throws
以便您可以将其称为
try! storeCoordinator.removePersistentStore(persistentStore)
或更好:
do {
try storeCoordinator.removePersistentStore(persistentStore)
} catch let error as NSError {
print("failed", error.localizedDescription)
}
比较{34}在"使用Swift与Cocoa和Objective-C"参考:
如果Objective-C方法的最后一个非块参数是NSError **类型,则Swift将其替换为throws关键字,以指示该方法可能引发错误。
...
如果生成Objective-C方法的错误返回BOOL值以指示方法调用的成功或失败,则Swift会将函数的返回类型更改为Void。