【问题标题】:decomposing Parse NSError generated by blocks such as findObjectsInBackgroundWithBlock分解 findObjectsInBackgroundWithBlock 等块产生的 Parse NSError
【发布时间】:2015-01-28 04:09:14
【问题描述】:

我正在尝试从以下生成的解析错误中挑出 iOS 错误:

[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {...

当我打印 [error userInfo] 时,我得到以下结果:

错误域=NSURLErrorDomain 代码=-1009 "Internet 连接 似乎离线。” UserInfo=0x7f93c5930960 {NSUnderlyingError=0x7f93c5e7d430 "互联网连接似乎 离线。", NSErrorFailingURLStringKey=https://api.parse.com/2/find, NSErrorFailingURLKey=https://api.parse.com/2/find, _kCFStreamErrorDomainKey=12, _kCFStreamErrorCodeKey=8, NSLocalizedDescription=互联网连接似乎处于离线状态。}

我假设解析 API 将 IOS 连接 NSError 添加到解析生成的 NSError。如何检索原始 NSError?更具体地说,我想获取最后一个 NSLocalizedDescription 的 NSString,即“Internet 连接似乎处于脱机状态”。

感谢您的帮助。

【问题讨论】:

    标签: parse-platform


    【解决方案1】:

    原始错误嵌入在 Parse 创建的错误的 userInfo 对象中,键为 originalError。在这里,您可以获得localizedDescription,这是您所追求的值。

    [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
      if (error) {
        NSError *originalError = error.userInfo[@"originalError"];
        NSString *description = originalError.localizedDescription;
        ...
     }
    }];
    

    【讨论】:

    • 您好,感谢您的帮助。它仍然无法正常工作。 error.userInfo[@"originalError"] 返回 nil。尝试打印时: NSError *originalError = error.userInfo[@"originalError"]; NSLog(@"原始错误:%@", originalError);输出为:原始错误:(空)p.s。我将它与这一行一起使用:[user saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) { 我认为它没有任何区别。
    • @user2671766 这实际上取决于您遇到的错误类型,即错误userInfo 中是否会有originalError 键。例如,如果您尝试保存一个不存在的类(并且客户端类创建已关闭),您将收到 Parse 119 错误,其中没有 originalError。如果您尝试在没有连接的情况下保存,您应该得到一个解析错误 100,带有一个 originalError 对象。您确实需要根据现有信息进行测试和反应。
    • 我似乎收到了错误 100:这是完整的错误。打印时: NSLog(@"更改未保存。Error.userInfo: %@", error.userInfo);我明白了:未保存更改。 Error.userInfo: { 代码 = 100; error = ... 上面的错误。但没有'originalError'。我还尝试在您的建议中仅使用“错误”。它打印“内部错误”,即上面打印的内容,但是当尝试将其分配给 nserror 并获取其用户信息时,它会崩溃。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    相关资源
    最近更新 更多