内存问题主要是两方面: 内存溢出, 野指针异常.
内存溢出: ios给每个应用程序一定的内存用于程序运行, 一旦超出内存上线, 程序就会crash
野指针: 内存空间已经被系统收回仍旧在只用这块内存, 程序就会crash
内存管理方式: MRC, ARC
MRC的内存管理机制是引用计数
ARC是基于MRC的
引用计数+1: alloc, retain, copy
引用计数-1: release, autorelease(在未来的某一时刻释放, 由最近的自动释放池控制)
当对象被添加到容器(字典, 数组)里时,内存引用计数+1;
从容器里移除时,内存引用计数-1.
当引用计数为0的时候, 会自动调用dealloc, 进行释放