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 错误解决_第1张图片
在Compile Sources 栏下的文件中找到要手动管理内存释放的类的.m文件,加注解-fno-objc-arc 来告诉编译器这个类要自己管理内存

Objective-C


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


你可能感兴趣的:(IOS,-,OC,专栏,IOS,Swift,专栏)