Objective c 从NSMutableArray中删除对象时NSDictionary是否发生更改?
我有一个字典&数组在这里,我从数组中删除一个对象意味着它也反映在字典中 下面是我的代码Objective c 从NSMutableArray中删除对象时NSDictionary是否发生更改?,objective-c,nsmutablearray,nsdictionary,Objective C,Nsmutablearray,Nsdictionary,我有一个字典&数组在这里,我从数组中删除一个对象意味着它也反映在字典中 下面是我的代码 NSMutableArray * planDetailArr; NSDictionary *singleItemDict; - (void)viewDidLoad { [super viewDidLoad]; planDetailArr=[[NSMutableArray alloc]init]; singleItemDict=[[NSDictionary alloc]init];} /
NSMutableArray * planDetailArr;
NSDictionary *singleItemDict;
- (void)viewDidLoad {
[super viewDidLoad];
planDetailArr=[[NSMutableArray alloc]init];
singleItemDict=[[NSDictionary alloc]init];}
//Parsing the JSON Response
-(void)responseFun:(NSMutableDictionary *)response
{
singleItemDict=response;
planDetailArr=response[@"planDetails_array"];
//Removing two values from array
[planDetailArr removeLastObject];
[planDetailArr removeObjectAtIndex:0];
}
在上面的代码中,我只删除了数组中的值。当我在删除了在字典中反映的值后打印数组和字典时,请帮助我
注意:除了打印响应之外,它也会被删除。您需要获取字典的副本。因为它们指向同一个对象,所以实际对象的值会发生变化
singleItemDict=[response copy];
planDetailArr=[response[@"planDetails_array"] mutableCopy];
这将解决问题。为什么
planDetailArr
和subgleItemDict
声明为全局变量,而不是实例变量?不,我想在其他方法中使用,比如表视图count,没有理由将它们设为全局变量。这将导致问题。嗨,meth,我对此副本有一个疑问,mutablecopy这些都可以,这解决了我的问题,但它反映在这,我正在移除数组中的对象,它反映在字典中如何???即使这两个是不同的数据类型&变量名也会在字典中保留aslo@meth@TestiOS因为数组在字典中,当您更改数组的组成时,由于数组在字典中,您指向的数组没有分配空间并创建新的数组,词典的结构也受到这种变化的影响。