2011-07-06 61 views
1

我用的MKMapView工作,我使用一些陣列來處理地圖處理的NSArray和NSMutableArray裏

NSString *mapTitles = @"title1^^title2^^title3^^title4";//this data changes between views 
NSArray * titlesArray = [mapTitles componentsSeparatedByString: @"^^"]; 
NSMutableArray * maptitle = [NSMutableArray arrayWithCapacity:[titlesArray count]]; 
[maptitle addObjectsFromArray:titlesArray]; 

上的點的標題當用戶導航到另一個頁面我想要清除的NSMutableArray所以當他們回到地圖時,我可以用新數據刷新它。然而,當NSMutableArray被一個我無法清除的NSArray填充時,我如何確保NSMutableArray只被新數據填充,而不是NSArray可能從前一個視圖保留的東西?

它只是一個釋放NSArray的情況,例如在viewWillDisappear中?

感謝

+0

有沒有什麼理由不能只說'maptitle = nil;'? – Dancreek

+0

如果我清除可變數組,例如在viewWillDisappear中,然後用戶返回頁面,如果NSArray沒有自動發佈,它仍然保存用戶第一次訪問的數據,所以看起來可變數組填充了舊數據+新數據,而不是隻是新的數據。 –

+2

我不認爲我明白你是如何刷新你的數據。新數據在哪裏進入?如果你每次製作新的titlesArray,那麼你就不會有問題。 – Dancreek

回答

0

,您仍然可以清除可變數組本身:

[mapTitle removeAllObjects]; 

,因爲它的自動釋放你不應該釋放titlesArray

+0

我可以控制autorelease何時發生? –

+1

你可以把它放在一個新的自動釋放池(alloc/init一個新的,自己釋放的東西然後耗盡並釋放池),但你真的不應該。它與你的問題無關。 – FeifanZ