ARC 和 MRC 小结

时间:2022-08-02 00:05:46

ARC 和 MRC 内存管理

从 MRC—>ARC 就是将内存管理部分,从开发者的函数中转移到函数外部的runtime 中.由于 runtime 的开发简单,逻辑层次高,所以 runtime 的出错几率很小,另外由于编译器的优化,使得运行速度很高.

ARC 的特点:

  • 不能显示的调用 dealloc,retain,release 等(同样不能再 ARC 中自定义的 delloc 方法中调用[super dealloc]方法.不能调用@selector(retain), @selector(release)的方法)
  • 不能使用 NSAllocateObject 和 NSDeallocateObject来创建和释放对象.
  • 不能使用 C 语言结构体中使用对象指针
  • id 和 void * 之间不能随意转换
  • 不能使用NSAutoreleasePool对象
  • 不能使用内存区域.为了自动 retain—release,ARC 在内存管理方面做了一些限定,即不能以 new 为开头命名编译器名称,也就是说不能以 new 开头命名属性,除非指定一个不同命的 getter 方法.