Home iOS - About ARC
Post
Cancel

iOS - About ARC

什么是ARC

  • ARC (Automatic Reference Counting )自动引用计数。
  • ARC是LLVM 3.0 编译器的特性。 ( 不是运行时特性,也不是垃圾回收机制
  • ARC开启时,编译器会自动在代码合适的地方插入 retain ,release 和 autorelease

ARC工作原理

编译器会自动在代码合适的地方插入 retain ,release 和 autorelease


ARC机制

Strong

  • 只要一个对象被任一strong指针指向,那该对象不会被销毁。如果一个对象没有被任何strong指针指向,那该对象会被销毁。
  • 所有的实例变量、局部变量都是strong类型。

Weak

  • 当weak指针指向的对象被销毁后,weak指针会被置为nil。
  • strong 和 weak 指针都不会指向一个deallocted的对象。

实际应用

  • ViewController 与 TableView

image

  • @property 中的 strong & weak

    相当于MRC时的retain 和 assign

注意事项

  • ARC中依然可以加入retain 和 release,不可忘记内存管理,也要在合适的时候将指针置为nil。
  • 在XCode中指定某些文件不需要ARC编译时,可以在Compiple Sources 中给指定的文件添加Compile Flags “-fno-objc-arc”

参考

This post is licensed under CC BY 4.0 by the author.

iOS - Runtime 消息转发机制示意图

iOS - 关于Block

Trending Tags