我是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];
}
执行循环时:
Object
有值(数字= 10),现在manoj_Array
也有(数字= 10)。Object
有值(数字= 12),现在manoj_Array
有(数字= 12,数字= 12)。但我希望结果为manoj_Array
(数字= 10,数字= 12)。我不知道数组值如何变为最后一个值。
答案 0 :(得分:0)
我的想法
samArray和manoj_Array共享内存参考,这就是为什么最后一个值插入manoj_Array
i = 0值是按地址1000存储
i = 1值是按地址1002
存储但是manoj_Array共享内存所以更改最后一个值是添加到manoj_Array
答案 1 :(得分:0)
您可以实现KVO以了解值何时发生变化并处理其行为。