具体来说,当我使用AFNetworking与JSONkit进行请求并接收一个包含多个嵌套数组和字典的(id)JSON时,就会遇到这个问题。
如果我不想修改数据,那么就没有任何问题:
self.myNSArray = [JSON objectForKey:@"result"];
但是如果我想修改数据,我必须将其存储在可变变量中:
self.myNSMutableArray = [[JSON objectForKey:@"result"] mutableCopy];
最后一个选项不会将嵌套数组或字典转换为可变数据;它仅适用于第一层。
我唯一找到的方法是在这个链接recursive mutable objects上;但我不知道是否有更好的方法来解决这种问题。
提前致谢。
CFBridgingRelease(CFPropertyListCreateDeepCopy(NULL, (__bridge CFPropertyListRef)(immutableArray), kCFPropertyListMutableContainersAndLeaves));
гҖӮ - brainjamNULL
的情况下,此代码似乎会返回一个nil
值。您知道在这种情况下的解决方法吗?参考链接 - S PNSNull
值。如果您想序列化包含它们的集合,请考虑使用NSJSONSerialization
或NSKeyedArchiver
。 - omz