2

有没有关于该-[NSResponder presentError:]方法如何工作的文档?我正在尝试NSError在我的库中创建实例,其userInfo值向用户显示尽可能多的有用信息。我过得很艰难。

我刚开始使用NSLocalizedFailureReasonErrorKey. 看到它分配了messageText生成的属性NSAlert(粗体字体,最上面的标签),我接下来尝试添加 on NSLocalizedDescriptionKey,我认为它会填充informativeText属性,以便在其下进行非粗体解释。我还补充说NSURLErrorKey,因为这个库处理文件,它会很有帮助。

结果NSAlert根本不显示原始NSLocalizedFailureReasonErrorKey值,新的NSLocalizedDescriptionKey现在变成messageText. 它也根本不暴露NSURLErrorKey

我唯一的选择是编写自己的错误表示方法和特殊情况下这个库的域吗?

4

1 回答 1

2

键的NSError交互presentError:方式记录在错误处理编程指南的本地化错误信息下。

它包括一个详细说明去哪里的图表。正如文档所指出的:

失败原因

解释错误发生原因的简短句子。它通常是错误描述的一部分。presentError: 等方法不会自动显示失败原因,因为它已经包含在错误描述中。失败原因适用于只想显示失败原因的客户端。

如果要在NSError呈现之前重新排列对象中的字段,最好通过覆盖willPresentError:来返回调整后的错误对象。

对于诸如 之类的字段NSURLErrorKey,预计您会将其包含在其中NSLocalizedDescriptionKeyNSLocalizedRecoverySuggestionErrorKey如果您想显示它。虽然它被称为“恢复建议”,但该文档明确表示它可以“用作补充错误描述和失败原因的纯粹信息性消息”。

于 2015-02-23T18:12:26.430 回答