Objective c NSJSONSerialization中的不可变NSJSONReadingOptions
要反序列化JSON字符串,我使用以下方法:Objective c NSJSONSerialization中的不可变NSJSONReadingOptions,objective-c,ios,nsjsonserialization,Objective C,Ios,Nsjsonserialization,要反序列化JSON字符串,我使用以下方法: + (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error 但是,我发现reading选项返回可变对象。有没有一种方法可以用来接收不可变的对象?只有当NSJSONReadingOptions参数包含NSJSONReadingMutableContainers时,才应该获取可变对象。实际上,当我使用0的选项调用时,我会
+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error
但是,我发现reading选项返回可变对象。有没有一种方法可以用来接收不可变的对象?只有当
NSJSONReadingOptions
参数包含NSJSONReadingMutableContainers
时,才应该获取可变对象。实际上,当我使用0
的选项调用时,我会得到一个标准的NSDictionary
,但是如果我使用NSJSONReadingMutableContainers
,我会得到一个NSMutableDictionary
。您的选项
值使用了什么?为了更好的可读性,您可以使用针织物
而不是0
从
<代码>针织品
只是0的一个常量–我发现它的名称非常简单
不过是描述性的,所以我总是喜欢它,而不仅仅是0的值
方法参数
我在寻找你提到的期权价值。0起作用。有没有记录在案。谢谢。请看。但它没有提到“0”表示同意的值。我们可以推断,如果不选择
NSJSONReadingMutableContainers
(它启用可变容器),那么这些容器因此是不可变的。因为这是一个按位运算符,0表示没有选择任何选项。@Rob我在这里有点困惑,为什么要使用不在可能值列表中的选项,如果没有文档说明它是什么,我认为我们不应该依赖它,因为它可能会随新版本的iOS而改变