天天看點

ios Message from debugger: Terminated due to memory issue 錯誤解決

報錯原因:記憶體不足,通常是一個vc中産生了大量的對象,沒有及時釋放導緻的

解決思路:

1:減少全局變量的使用,變量的聲明隻要出了作用域,一般都會自動釋放,但全局變量因為類持有變量,是以就算不使用也不會得到記憶體管理機制的釋放.
2.手動添加釋放變量,例如使用UIScrollView時,可以将螢幕顯示外的部分手動釋放,當滾動到螢幕内時再将其重新初始化.

釋放記憶體

1.自動釋放

UI元件釋放方法

先調用removeFromSuperview 删除視圖

再将其引用置為空 如下:

Objective-c:

[self.view removeFromSuperview];
self.view = nil;



           

Swift:

self.view .removeFromSuperview()
self.view = nil


           

普通對象釋放方法

Objective-C

self.view = nil;



           

Swift

self.view = nil


           

2.手動釋放

AppName->Build Phases

ios Message from debugger: Terminated due to memory issue 錯誤解決

在Compile Sources 欄下的檔案中找到要手動管理記憶體釋放的類的.m檔案,加注解-fno-objc-arc 來告訴編譯器這個類要自己管理記憶體

Objective-C

[self.view release];
///指針指向nil,避免成為野指針
self.view = nil;