【问题标题】:How can i fetch key value from Error in swift如何快速从错误中获取键值
【发布时间】:2017-02-28 10:20:55
【问题描述】:

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

 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)")
            }

结果:

     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";
                        };
                    }
                );
            };
        }})

【问题讨论】:

    标签: swift swift3 nserror


    【解决方案1】:

    为了访问错误的用户信息,您必须将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"]
    }
    

    【讨论】:

    • 感谢您回答我,但它不工作它给出错误 getter/setter not initialized
    • 我的代码中缺少if。如果错误仍然存​​在,请使用您尝试过的新代码更新您的问题,以便我可以看到您如何尝试使用它。并且请发布完整的编译器/运行时错误及其发生的行。
    • 条件绑定的初始化器必须有 Optional 类型,而不是 'NSError' 如果 let nserror = error as NSError ,我在这一行得到了这个错误,
    • 这就是我的意思,可能缺少一些?!。我编辑了我的答案。
    • 输入“任何?”没有下标成员现在我在这一行遇到了这个错误 let message = nserror.userInfo["errors"]["customer"]["email"][0]["message"] 感谢考虑我
    猜你喜欢
    • 2018-08-10
    • 1970-01-01
    • 2017-02-23
    • 2022-01-21
    • 1970-01-01
    • 2017-03-08
    • 1970-01-01
    • 2017-04-18
    • 1970-01-01
    相关资源
    最近更新 更多