報錯原因:記憶體不足,通常是一個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
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL3VFVNJzZU5EeRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLykDOwADOxADMzAzMwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
在Compile Sources 欄下的檔案中找到要手動管理記憶體釋放的類的.m檔案,加注解-fno-objc-arc 來告訴編譯器這個類要自己管理記憶體
Objective-C
[self.view release];
///指針指向nil,避免成為野指針
self.view = nil;