2011-07-14 126 views
0

我有一個KML文件,我每10秒調用一次NSURL。在該方法中,我將執行以下操作來存儲數據的緯度,經度和顏色。如何將含有NSDictionary的NSMutableArray複製到另一個NSMutableArray中

cachedData是一個NSMutableArray實例變量。

masterData是一個NSMutableArray實例變量。

masterDataCounter是一個int實例變量。

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

一旦數據被解析,我想將cachedData陣列的整個內容保存到關聯數組(masterData如上所述),所以我可以通過索引引用它,然後清除cachedData,以節省存儲器。

示例

array of index |數據存儲

0 |緩存數據的全部內容第一次拉

1 |緩存數據的第二的全部內容拉

的KML解析了之後,我運行此代碼:

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

這是一個正確的方法是什麼?我怎樣才能參考第二次運行中存儲的數據點總數?

是嗎?出於某種原因,我沒有得到正確的結果,當我嘗試:

[[masterData objectAtIndex:1] count]; 

回答

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]; 
相關問題