我如何快速从 Error 中获取键值

Yat*_*wal 2 nserror swift swift3

如何以最佳方式从此错误结果中获取消息值。我尝试了很多但从未获得价值,所以请帮助我

 BUYClient.sharedClient.createCustomer(with: credentials) { (customer : BUYCustomer?,token:  BUYCustomerToken?, error :Error?) -> Void in
                if customer != nil{
                    print(token ?? "kuch nahi aaya")
                    print(customer?.fullName ?? "kuch nahi aaya")
                }
                let customer = error.debugDescription

                print("value===\(customer)")
            }
Run Code Online (Sandbox Code Playgroud)

结果 :

     value===Optional(Error Domain=BUYShopifyErrorDomain Code=422 "(null)" UserInfo={errors={
            customer =     {
                email =         (
                                {
                        code = taken;
                        message = "has already been taken";
                        options =                 {
                            "rescue_from_duplicate" = 1;
                            value = "y@gmail.com";
                        };
                    }
                );
            };
        }})
Run Code Online (Sandbox Code Playgroud)

Kie*_*Kie 5

为了访问错误的 userInfo ,您必须将您的Error转换为经典NSError,然后您可以userInfo像访问字典一样访问。

let nserror = error as! NSError
if let errors = nserror.userInfo["errors"] as? [String: NSObject],
   let customer = errors["customer"] as? [String: NSObject],
   let email = customer["email"] as? [[String: NSObject]]
{
    let message = email[0]["message"]
}
Run Code Online (Sandbox Code Playgroud)