2010-11-29 120 views
1

我建立一個應用程序和每個標籤欄項目包含4或有時5嵌套導航..我試圖做的每一個瘦但pushViewController導致儀器內存分配問題,我不知道我可以什麼做,, 代碼是pushViewController內存分配問題

[self.navigationController pushViewController:table animated:YES]; 
[table release]; 
table=nil; 

我嘗試打印引用計數和我震驚

推之前引用計數= 1 和推後是= 4

爲什麼? 任何人都可以幫我嗎?


代碼是我用來啓動該表是

custemTable *table=[[custemTable alloc] initWithNibName:@"custemTable" bundle:nil ]; 
NSString selectedCellText=((custemCell)[tableView cellForRowAtIndexPath:indexPath]).THNameLabel.text; 
cll=(custemCell)[tableView cellForRowAtIndexPath:indexPath]; 
cll.backgroundLabel.backgroundColor=[UIColor ]; 
[backgroundSelectedCell release]; 
backgroundSelectedCell=nil; 
table.showingTill=selectedCellText; 
[email protected]"..."; 
selectedCellText=nil; 
[self.navigationController pushViewController:table animated:YES]; 
[table release]; 
table=nil; 

真正的問題是,應用程序啓動時內存分配1.56 M和當我選擇的任何細胞和pushViewController工作記憶因爲2.8米,當我支持2.8 M的內存(有時約2.7或2.6),以知道..沒有內存泄漏,我是分配一切,我分配或保留或複製,我不能什麼我可以做!

回答

1

我會說在你的應用程序泄漏內存中還有別的東西。

你能粘貼更多的代碼,包括你如何實例化* table嗎?

另外,您不應該依賴retainCount值來確定對象是否泄漏。系統還會保留它所需的對象,並在不再需要時釋放它,並且您的retainCount將始終受其影響。

作爲一般規則,如果您分配,保留或複製一個對象,您有責任將其釋放。其他的一切都由系統處理,並且會被自動發佈池刷新。

+1

可能更好編輯您的問題與代碼 – Rog 2010-11-29 08:28:46

+0

親愛的杆..代碼是我用來發起表是 custemTable * table = [[custemTable alloc]; initWithNibName:@「custemTable」bundle:nil]; NSString selectedCellText =((custemCell)[tableView cellForRowAtIndexPath:indexPath])。THNameLabel.text; cll =(custemCell)[tableView cellForRowAtIndexPath:indexPath]; cll.backgroundLabel.backgroundColor = [UIColor]; [backgroundSelectedCell發佈]; backgroundSelectedCell =無; table.showingTill = selectedCellText; table.title = @ 「......」; selectedCellText =無; [self.navigationController pushViewController:table animated:YES]; [表格發佈]; [table = nil; – Adel 2010-11-29 08:34:16

0

代碼是我用於啓動該表是

custemTable *表= [[custemTable的alloc] initWithNibName:@ 「custemTable」 束:無]; NSString selectedCellText =((custemCell)[tableView cellForRowAtIndexPath:indexPath])。THNameLabel.text; cll =(custemCell)[tableView cellForRowAtIndexPath:indexPath]; cll.backgroundLabel.backgroundColor = [UIColor]; [backgroundSelectedCell發佈]; backgroundSelectedCell =無; table.showingTill = selectedCellText; table.title = @ 「......」; selectedCellText = nil; [self.navigationController pushViewController:table animated:YES]; [表格發佈]; table = nil;

真正的問題,當應用程序啓動內存分配爲1.56 M,當我選擇任何單元和pushViewController工作內存因爲2.8 M 和當我回內存留在2.8 M的範圍內(約2.7或2.6有時) 要知道..沒有內存泄漏,我是分辨我分配或保留或複製的一切 ,我不能做什麼!