【问题标题】:Immutable NSJSONReadingOptions in NSJSONSerializationNSJSONSerialization 中的不可变 NSJSONReadingOptions
【发布时间】:2012-11-15 07:07:13
【问题描述】:

要反序列化 JSON 字符串,我使用以下方法:

+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error

但是,我发现读取选项返回可变对象。有没有一种方法可以让我接收不可变的对象?

【问题讨论】:

    标签: objective-c ios nsjsonserialization


    【解决方案1】:

    如果您的NSJSONReadingOptions 参数包含NSJSONReadingMutableContainers,您应该只获取可变对象。事实上,当我用options0 调用时,我得到一个标准的NSDictionary,但如果我使用NSJSONReadingMutableContainers,我得到一个NSMutableDictionary。您的options 值使用什么?

    【讨论】:

    • 我在寻找你提到的期权价值。 0 作品。它是否记录在某处。谢谢。
    • 但它没有提到价值为“0”
    • 同意。可以推断,如果您不选择NSJSONReadingMutableContainers(启用可变容器),则容器因此是不可变的。而且因为这是一个按位运算符,所以 0 表示没有选择任何选项。
    • @Rob 我在这里有点困惑,为什么使用不在可能值列表中的选项,如果没有文档,我认为我们不应该依赖它可能会随着 iOS 的新版本而改变
    【解决方案2】:

    为了更好的可读性,您可以使用kNilOptions 而不是0

    来自http://www.raywenderlich.com/5492/working-with-json-in-ios-5

    ...kNilOptions 只是 0 的常数——我觉得它的名字很 虽然是描述性的,所以我总是更喜欢它而不是 0 的值 方法参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多