2013-03-04 123 views
0

我真的很驚訝,當我在代碼中啓用ARC時,儀器在我的代碼中的pushviewcontroller顯示內存泄漏。以下是我的代碼:pushviewcontroller在ARC中導致內存泄漏

AddCallDetailsViewController *lAddCallDetailsViewController=[[AddCallDetailsViewController alloc]init]; 
lAddCallDetailsViewController.isAllDay = isAllDay; 
lAddCallDetailsViewController.delegate = self; 
lAddCallDetailsViewController.currentDayinCalender = curdate; 
lAddCallDetailsViewController.isFromEditCall = YES; 
[self.navigationController pushViewController:lAddCallDetailsViewController animated:YES]; 

以下是顯示該點100%泄漏的儀器的回溯。

任何幫助解決這個問題將不勝感激。

enter image description here

+0

是每次每個這樣的情況,當你嘗試推的ViewController – 2013-03-04 05:38:26

+0

此外,我在這個論壇上同類的許多問題,但他們大多是預-ARC和啓用的ARC沒有任何適用於完全解決問題的答案。 – execv 2013-03-04 05:38:55

+0

每當我嘗試運行儀器,它顯示這個問題... – execv 2013-03-04 05:40:05

回答

0

只是儘量增加「lAddCallDetailsViewController」的範圍,以一流的水平.. 在.m文件.h文件中或私人範圍。

AddCallDetailsViewController *lAddCallDetailsViewController; 

在.m文件

lAddCallDetailsViewController=[[AddCallDetailsViewController alloc]init]; 
lAddCallDetailsViewController.isAllDay = isAllDay; 
lAddCallDetailsViewController.delegate = self; 
lAddCallDetailsViewController.currentDayinCalender = curdate; 
lAddCallDetailsViewController.isFromEditCall = YES; 
[self.navigationController pushViewController:lAddCallDetailsViewController animated:YES]; 
+1

是否有任何具體的原因,改變範圍將解決這個問題?我有很多對象,並且在課堂級別的範圍越來越大,可能會在代碼中產生一些問題...... – execv 2013-03-04 06:35:31

+0

將範圍更改爲類級別時,只有在內存中沒有此類實例時纔會執行分配。 – Ganapathy 2013-03-04 06:38:23

+0

雖然改變對象的範圍到課堂級別已經解決了我的問題,如果你能解釋我背後的原因,這真的很有幫助嗎? – execv 2013-03-04 07:19:45