autoreleasepool底层原理
自动释放池存储在池本身排出时发送发布消息的对象。
如果你使用自动引用计数(ARC),你不能直接使用自动释放池。相反,你可以使用@autoreleasepool块。
1 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; |
可以写成:
1 | @autoreleasepool { |
在我们的ARC模式下,我们不可以直接使用自动释放池,可以用@autoreleasepool的block块代替。@autoreleasepool的block块比直接使用NSAutoreleasePool实例使用更有效。即使不是ARC模式,也可以使用。
问题
Q:主线程创建临时变量,什么时候会销毁?