在研究RealmSwift数据库的时候遇到一个报错如下:
Contextual closure type '(Result<Realm, Error>) -> Void' expects 1 argument, but 2 were used in closure body
- 分析:
网上大多数人之前使用
Realm.asyncOpen这个方法都是如下写法,但是现在这个API有变动,所以报错了。
Realm.asyncOpen { (realm, error) in
if let _ = realm {
print("Realm 服务器配置成功!")
}else if let error = error {
print("Realm 数据库配置失败:\(error.localizedDescription)")
}
}
- 解决方法:
Realm.asyncOpen { result in
switch result {
case .success(let realm):
print("Realm 服务器配置成功!\(realm)")
case .failure(let error):
print("Realm 数据库配置失败:\(error.localizedDescription)")
}
}
总结: 之前的
(realm, error)变成了一个Result,所以得改变之前的写法。 也可以看看这边文章了解它的使用方法。Result该如何使用