标签: 面试

iOS基础知识总结

OC

内存管理

内存管理的原理和原则
  • 基本数据类型(int,float,double,enum,struct,union等)和C语言的类型存储在栈区,由系统分配释放
  • 继承自NSObject的类属于OC类型,都遵循内存管理原则
  • 谁创建,谁释放(MRC程序员管理,ARC系统封装了编译时插入retainrelease 自动释放池等自动管理内存)
  • OC方法调用的本质其实是给对象发送消息,需要引用时发送retain引用计数加1,释放时发送release引用计数减1,每个OC对象都有一个retainCount计数器占有4个字节
  • MRC 设置setter需要判断,存在旧值,则需要先把旧值释放release,然后新值retain之后赋值