iOS面试题:Autorelease的原理 ?

  • ARC下面,我们使用@autoreleasepool{}来使用一个Autoreleasepool,实际上UIKit 通过RunLoopObserver 在RunLoop二次Sleep间Autoreleasepool进行Pop和Push,将这次Loop产生的autorelease对象释放 对编译器会编译大致如下:
void *DragonLiContext = objc_ AutoreleasepoolPush();
// {} 的 code 
objc_ AutoreleasepoolPop(DragonLiContext);
  • 释放时机: 当前RunLoop迭代结束时候释放.

更多:iOS面试题合集

你可能感兴趣的:(iOS面试题:Autorelease的原理 ?)