1.内存优化的方案
1.首选使用ARC环境开发,但是也要注意防止循环引用的产生,避免内存泄漏
2.懒加载,延迟创建对象,需要的时候才创建节省内存消耗
3.复用,单元格的服用,避免过多的创建对象
4.选择正确的是数据结构,不必要的时候不使用可变容器
5.单例模式
6.及时删除缓存信息
2.Xcode工具的使用
在开发过程中遇到类似内存泄漏的问题,我们可以通过Xcode中的Instruments来分析解决问题:
【Xcode】 > 【Open Developer Too】>【 Instruments】
1.Leaks:检测内存泄漏
2.zombies :僵尸对象,指的是对应的内存已经被释放并且不再会使用到,但是你的程序却在某处依然有指向它的引用
3.iOS中的回调机制
1.代理:也叫委托,当某个对象收到多个事件,并要求同一个对象来处理所有事件时。委托机制依赖于某个协议定义的方法来发送消息。
2.通知:当需要多个对象或两个无关对象处理同一个事件时使用。
3.Block:适用于回调只发生一次的简单任务。
4.BAD_ACCESS的错误原因
原因:访问了野指针,比如已经释放的对象的成员变量或者发送消息。
调试:Enaable zombie objects 、设置全局断点
5.解决报错libc++abi.dylib handler threw exception
遇到这种错误,即使用了All Exceptions,也断点到相应的代码了,但是没打印对应的日志。此时我们可以添加如下的代码来打印异常log:
@try{
//可能出现错误的代码片段
} @catch(NSException *exception) {
NSLog(@"exception:%@", exception);
} @finally {
}
网友评论