报错原因:内存不足,通常是一个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
在Compile Sources 栏下的文件中找到要手动管理内存释放的类的.m文件,加注解-fno-objc-arc 来告诉编译器这个类要自己管理内存
Objective-C
[self.view release];
///指针指向nil,避免成为野指针
self.view = nil;