我有一个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 |第一次拉动缓存数据的全部内容
1 |第二次拉动的缓存数据的全部内容
等
KML解析后,我运行以下代码:
[masterData insertObject:cachedData atIndex:masterDataCounter];
[cachedData removeAllObjects];
masterDataCounter++;
这是正确的方法吗?我如何参考例如第二次运行中存储的数据点总数?
是吗?出于某种原因,当我尝试时,我得不到正确的结果:
[[masterData objectAtIndex:1] count];
答案 0 :(得分:0)
对于初学者来说,有一种更好的方式来编写我上面描述的片段。
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:latitude,@"latitude",longitude,@"longitude",color,@"color",nil];
[cachedData addObject:dict];
[dict release];
对于第二个代码段,可以将其重写为:
[masterData insertObject:[[cachedData copy] autorelease] atIndex:masterDataCounter];
masterDataCounter++;
从这一点开始,您确实可以引用主masterData NSMutable数组,如下所示:
[[masterData objectAtIndex:desiredIndexNumber] count];