如何复制一个带有NSDictionary的NSMutableArray到另一个NSMutableArray



我有一个KML文件,我每10秒调用一个NSURL。在该方法中,我将执行以下操作来存储数据的纬度、经度和颜色。

cachedData是一个NSMutableArray实例变量。

masterData是一个NSMutableArray实例变量。

masterDataCounter是一个int型实例变量。

[cachedData addObject:[[[NSDictionary alloc] 
                    initWithObjectsAndKeys:latitude,@"latitude",longitude,@"longitude",color,@"color",nil] autorelease]];

一旦数据被解析,我想保存cachedData数组的整个内容到一个关联数组(masterData如上所述),这样我可以通过索引引用它,然后清除cachedData以节省内存。

例子

数组索引|存储数据

0 |第一次pull时缓存数据的全部内容

1 |第二次pull时缓存数据的全部内容

等。解析完KML后,我运行以下代码:

[masterData insertObject:cachedData atIndex:masterDataCounter];
[cachedData removeAllObjects];
masterDataCounter++;

这是正确的方法吗?例如,我如何引用在第二次运行中存储的数据点总数?

对吗?由于某种原因,当我尝试它时,我没有得到正确的结果:

[[masterData objectAtIndex:1] count];

对于初学者来说,有一种更好的方法来编写我上面描述的片段。

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:latitude,@"latitude",longitude,@"longitude",color,@"color",nil];
[cachedData addObject:dict];
[dict release];
对于第二个代码片段,它可以重写为:
[masterData insertObject:[[cachedData copy] autorelease] atIndex:masterDataCounter];
masterDataCounter++;

从这个yes,你确实可以引用主masterData NSMutable数组,如下所示:

[[masterData objectAtIndex:desiredIndexNumber] count];

最新更新