【问题标题】:Modify NSError localizedDescription修改 NSError 本地化描述
【发布时间】:2014-04-15 16:24:49
【问题描述】:

你们知道在实例化NSError 的localizedDescription 之后是否有一种很好的方法来设置/修改它,而不是重新创建它?没找到。

【问题讨论】:

    标签: ios cocoa-touch cocoa nserror


    【解决方案1】:

    NSError 类 - 与许多 Cocoa 类一样 - 不可变。

    但是,-localizedDescription 的文档指出:

    默认情况下,此方法返回用户信息字典中的对象 对于键 NSLocalizedDescriptionKey。如果用户信息字典 不包含 NSLocalizedDescriptionKey 的值,默认值 字符串由域和代码构成。

    所以只需使用errorWithDomain:code:userInfo: 创建一个新实例或复制并提供适当的用户信息。

    Here's 另一个不错的 introduction 到 NSError 类。

    【讨论】:

      【解决方案2】:

      NSError 没有为其属性声明设置器。由此您可以推断,它可能不会在创建后进行修改。我可以看到在 NSError 上写了一个类别,它会从另一个错误中创建一个错误,但 NSLocalizedDescriptionKey 键的值不同。

      【讨论】:

        【解决方案3】:

        如果您手动创建 NSError 并指定 userInfo,那么您可以重写此字典中键 NSLocalizedDescriptionKey 的值。只需将error.userInfo 转换为 NSMutableDictionary 或您在创建 NSError 对象时使用的任何类

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-03-11
          • 1970-01-01
          • 2018-09-26
          • 1970-01-01
          • 2017-03-25
          • 2015-01-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多