ios 應用如果占用系統的内容過大(8gb),就會造成應用直接被系統以崩潰的形式關閉,一次控制應用占用的記憶體大小是非常重要的事情。
現在我們來看看,一個空的應用占據的内容的大小:
測試環境:xcode 5.0/ios 5
啟動一個空應用,占用的記憶體為 2.6mb,占據應用崩潰的閥值為 0.03%
1:關于導覽列的 push和popup的測試結果
[self.navigationcontroller pushviewcontroller:m_navanimated:yes];
[self.navigationcontroller popviewcontrolleranimated:yes];
對于
pushviewcontroller ,會将對應的viewcontroller對象的引用計數器+1
popviewcontrolleranimated 會将對應的viewcontroller對象的引用計數器-1
但是有一點需要明确的是,對于函數
-(void)dealloc
{
//objects release here
[super deallco];
}
隻有在該引用計數器的值==0的時候才會調用,這個是必須牢記的。
在執行函數[self.navigationcontroller popviewcontrolleranimated:yes];的時候,如果彈出的viewcontroller對應的引用計數器為0,那麼也會執行dealloc 函數。
是以再使用
棧函數對的時候,為了釋放記憶體,我們可以這麼使用
nav_1 *m_nav = [[[nav_1 alloc] initwithnibname:nil bundle:nil] autorelease];
[self.navigationcontroller pushviewcontroller:m_nav animated:yes];
這樣就最大限度的節省了寶貴的記憶體空間
最新内容請見作者的github頁:http://qaseven.github.io/