面试资料iOS 开发成长中心iOS 你不知道的新鲜事

iOS开发--内存管理

2016-11-16  本文已影响47人  爱吃鱼的小灰

内存管理分两种模式

  1. MRC模式
    先说MRC(手动内存管理),当使用alloc,new,或者copy创建一个新对象时,新对象的引用计数默认就是1,当一个对象引用计数器值为0时,他将被销毁,其占用的内存会被系统回收,当一个对象被销毁时系统会自动向对象发送一条dealloc消息,一般会重写dealloc方法在这里释放相关资源,当对象被释放掉后,不可以重复释放,会出错,当引用计数器值为零时,那块储存空间就不可用了,是僵尸对象,如果再去进行释放,会出现野指针错误(只想了僵尸对象)(报错:EXC-BAD-ACCESS)。所以引用计数器值为0后要将指针清空防止出现野指针错误。
  2. ARC模式
    ARC(注意ARC不是垃圾回收机制,是编译器特性,编译器会自动帮我们插入内存管理代码),ARC对象释放与否的判断标准:只要没有强指针指向对象,对象就会被释放,默认情况下所有指针都是强指针,ARC下对象被释放后会自动清空指针,不会出现野指针错误。
上一篇下一篇

猜你喜欢

热点阅读