在将对象添加到NSMutablearray之前,如何避免NSMutablearray添加对象值更改?

时间:2014-04-11 07:38:18

标签: ios objective-c json nsmutablearray

我是Objective C的新手。我使用了以下代码。

for (int i = 0; i < [ValueisFound count]; i++)
{
    NSString* ObjectName = [NSString stringWithUTF8String:name];
    ObjectName = [[NSClassFromString([NSString stringWithUTF8String:samType]) alloc]init];

    NSMutableDictionary* jsonDictionary=[TemplateClass SeparateArray:jsonValue_1 key:[arrayofKeys objectAtIndex:j] index:i];

    ObjectName = [TemplateClass JsonPharser:str1 jsonObject:jsonDictionary];

    NSMutableArray *samArray=[[NSMutableArray alloc]initWithObjects:[TemplateClass JsonPharser:str1 jsonObject:jsonDictionary], nil];

    [manoj_Array addObject:samArray];

    [samArray release];
    [ObjectName release];
}

执行循环时:

  • 在i = 0时,Object有值(数字= 10),现在manoj_Array也有(数字= 10)。
  • 在i = 1时,Object有值(数字= 12),现在manoj_Array有(数字= 12,数字= 12)。

但我希望结果为manoj_Array(数字= 10,数字= 12)。我不知道数组值如何变为最后一个值。

2 个答案:

答案 0 :(得分:0)

我的想法

samArray和manoj_Array共享内存参考,这就是为什么最后一个值插入manoj_Array

i = 0值是按地址1000存储

i = 1值是按地址1002

存储

但是manoj_Array共享内存所以更改最后一个值是添加到manoj_Array

答案 1 :(得分:0)

您可以实现KVO以了解值何时发生变化并处理其行为。