2010-07-29 61 views
1

嗯,這已被竊聽了我相當長一段時間所以現在我會問當應uiviewcontrollers被宣佈爲屬性

時候應該uiviewcontrollers聲明爲屬性?我注意到在許多示例中,在uinavigation控制器上被推送和彈出的uiview控制器是而不是,聲明爲屬性。

我把這個向前,現在我的代碼中使用的每個uiviewcontroller都沒有聲明爲一個屬性(ofc內存處理仔細),甚至我的主視圖控制器內的appdelegate。然而,由於工具正在報告泄漏,我試圖將其作爲屬性聲明......結果是,即使泄漏仍在某處,應用程序的內存佔用量已減半。

所以,現在我想知道...我的方法是完全錯誤的,所有的uiviewcontrollers應該聲明爲合適的?將uiviewcontroller聲明爲屬性還是有特別的理由?

感謝

回答

0

視圖控制器的看法會佔用大量的內存,和iPhone不具備大量的內存不遺餘力在這個問題上的任何提示。也許你需要控制器的某些部分,但是我不會保留一個控制器,除非它在被解僱後絕對需要保留。

+0

是的,但是什麼時候他們應該被宣佈爲財產,什麼時候沒有? – koda 2010-09-27 02:00:18

0

如果您需要從您推送到的視圖控制器再次訪問它,您只想保留對UIViewController的引用。在任何其他情況下,你並不是真的想把它保存在內存中,而是考慮「延遲加載」所有的視圖控制器(可能是你之前做的事情)並立即釋放它們(UINavigationController持有對它的保留引用,所以你的應用在屏幕上不會崩潰/釋放它)。

儀器說漏了什麼代碼?請發佈。

+0

工具在appdelegate('[uiwindow addSubview:mainViewController.view];'')開始報告警告權,但是這是模擬器,現在我可以在設備上測試它不打印任何東西。 我所指的代碼更像是來自以下文件:http://code.google.com/p/hedgewars/source/browse/project_files/HedgewarsMobile/Classes/MainMenuViewController.m 這兩個視圖控制器需要是實例變量,因爲它們在SwitchView中使用,但它們不是屬性。他們應該是嗎? – koda 2010-07-31 12:43:05

相關問題