Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSJSONSerialization中的不可变NSJSONReadingOptions_Objective C_Ios_Nsjsonserialization - Fatal编程技术网

Objective c NSJSONSerialization中的不可变NSJSONReadingOptions

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的选项调用时,我会

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

+ (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而改变