【发布时间】:2014-04-15 16:24:49
【问题描述】:
你们知道在实例化NSError 的localizedDescription 之后是否有一种很好的方法来设置/修改它,而不是重新创建它?没找到。
【问题讨论】:
标签: ios cocoa-touch cocoa nserror
你们知道在实例化NSError 的localizedDescription 之后是否有一种很好的方法来设置/修改它,而不是重新创建它?没找到。
【问题讨论】:
标签: ios cocoa-touch cocoa nserror
NSError 类 - 与许多 Cocoa 类一样 - 不可变。
但是,-localizedDescription 的文档指出:
默认情况下,此方法返回用户信息字典中的对象 对于键 NSLocalizedDescriptionKey。如果用户信息字典 不包含 NSLocalizedDescriptionKey 的值,默认值 字符串由域和代码构成。
所以只需使用errorWithDomain:code:userInfo: 创建一个新实例或复制并提供适当的用户信息。
Here's 另一个不错的 introduction 到 NSError 类。
【讨论】:
NSError 没有为其属性声明设置器。由此您可以推断,它可能不会在创建后进行修改。我可以看到在 NSError 上写了一个类别,它会从另一个错误中创建一个错误,但 NSLocalizedDescriptionKey 键的值不同。
【讨论】:
如果您手动创建 NSError 并指定 userInfo,那么您可以重写此字典中键 NSLocalizedDescriptionKey 的值。只需将error.userInfo 转换为 NSMutableDictionary 或您在创建 NSError 对象时使用的任何类
【讨论】: