阅读 261

Contextual closure type '(Result<Realm, Error>) -> Void' expects 1 argument, but

在研究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该如何使用

文章分类
iOS
文章标签