非作者原著 来自摘抄
参考文献
ptlCoder
OC如何对内存管理
oc的内存管理主要有三种方式 ACR(自动内存计数) 手动内存计数 内存池
1.自动内存计数ARC 由Xcode自动在App编译阶段 在代码中添加内存管理
2.手动内存计数MRC 遵循内存谁申请 谁释放 谁添加 谁释放的原则
3.内存释放池Release Pool 把需要释放的内存统一放在一个池子中 当池子被抽干后 池
子中所有的内存空间也被自动释放掉 内存池的释放操作分为自动和手动 自动释放受
runloop机制影响
Category (类别) Extension(扩展) 和继承的区别
1.分类有名字 类扩展没有分类名字 是一种特殊的分类
2.分类只能扩展方法(属性仅仅是声明 并没有真正实现) 类扩展可以扩展属性 成员变量
和方法
3.继承可以增加 修改方法 并且可以增加属性
什么时候用delegate 什么时候用Notification
Delegate(委托模式) 1对1的反向消息通知功能
Notification(通知模式) 只想要把消息发送出去 告知某些状态的变化 但是并不关心谁
想要这个
开发项目怎么检查内存泄漏
1.静态分析 analyze
2.instruments 工具里面有个leak可以动态分析
isa指针问题
是一个Class类型的指针 每个实例对象有个isa指针 他指向对象的类 而Class里也有个
isa指针 指向meteClass(元类) 元类保存了类方法的列表 当类方法被调用时 先回从本身
查找类方法的实 如果么有 元类会向他父类查找该方法 同时注意的是 元类(meteClass)
也是类 它也是对象 元类也有isa指针 它的isa指针最终指向的是一个根元类
(root metaClass) 根元类的isa指针指向本身
这样形成了一个封闭的内循环
一个Objc对象的isa指针指向什么 有什么作用
指向他的类对象 从而可以找到对象上的方法
网友评论