有关于-[NSResponder presentError:]方法如何工作的文档吗?我试图在我的库中创建NSError实例,其userInfo值向用户显示尽可能多的有用信息。我现在很难过。
我一开始只使用NSLocalizedFailureReasonErrorKey。考虑到它分配了生成的messageText属性(粗体字体,最上面的标签),接下来我尝试在NSLocalizedDescriptionKey上添加一个非粗体的解释,然后我认为它会填充informativeText属性。我还添加了NSURLErrorKey,因为这个库处理文件,这将是有帮助的。
结果的NSAlert根本不显示原始的NSLocalizedFailureReasonErrorKey值,新的NSLocalizedDescriptionKey现在变成了messageText。它也完全不公开NSURLErrorKey。
是我唯一的选择来写我自己的错误表示方法和特例这个库的域?
发布于 2015-02-23 18:12:26
NSError键与presentError:的交互方式在局部误差信息下的错误处理编程指南中有记录。
它包括一个图表,详细说明了去哪里。正如医生们所指出的:
失效原因 一个简短的句子,解释错误发生的原因。它通常是错误描述的一部分。方法,如presentError:不要自动显示失败原因,因为它已经包含在错误描述中。失败原因是只想显示失败原因的客户端。
如果要在表示之前重新排列NSError对象中的字段,最好是重写willPresentError:以返回已调整的错误对象。
对于像NSURLErrorKey这样的字段,如果您想要显示它,您应该已经将它包含在NSLocalizedDescriptionKey或NSLocalizedRecoverySuggestionErrorKey中。虽然它被称为“恢复建议”,但文档明确表示,它可以“作为对错误描述和失败原因进行补充的纯信息信息”使用。
https://stackoverflow.com/questions/28680300
复制相似问题