天天看點

IOS-記憶體檢測以及優化

  ios 應用如果占用系統的内容過大(8gb),就會造成應用直接被系統以崩潰的形式關閉,一次控制應用占用的記憶體大小是非常重要的事情。

  現在我們來看看,一個空的應用占據的内容的大小:

  測試環境:xcode 5.0/ios 5

  啟動一個空應用,占用的記憶體為 2.6mb,占據應用崩潰的閥值為 0.03%

IOS-記憶體檢測以及優化

  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/

繼續閱讀