0
我開發一個應用程序。我正在執行一次搜索操作。 看到我的搜索方法:retaincount將複製後增加一個陣列
-(void)searchData
{
//[A release];
B =[A copy];
[A release];
NSLog(@"A retain count %i",[A retainCount]);
NSLog(@"B retain count %i",[B retainCount]);
C = [[NSMutableArray alloc]init];
[C removeAllObjects];
for (int i=0; i<[B count]; i++) {
DataBaseFields *data = [B objectAtIndex:i];
NSRange range= [data.DBtitle rangeOfString:searchEvents.text options:NSCaseInsensitiveSearch];
if (range.length>0) {
[C addObject:data];
}
}
NSLog(@"shouldChangeTextInRange text is %@",searchEvents.text);
A = [C copy];
NSLog(@"A retain count %i",[A retainCount]);
NSLog(@"C retain count %i",[C retainCount]);
[tableView1 reloadData];
}
在這段代碼A
,B
,C
三個NSMutableArrays。我沒有分配內存,也沒有爲該數組寫入屬性。在此,如果搜索操作顯示任何數據,那麼陣列中的顯示retainCount
最後1.如果再沒有結果數組A表示retainCount
在最後32或46。所以,請告訴我如何解決這一個。
閱讀本http://stackoverflow.com/questions/6534594/is-this-a-good-way-to-release-memory/6534665#6534665 – Jhaliya 2012-01-31 08:16:18