我已经了解@autoreleasepool 的工作原理,我拥有支持 ARC 的最新版本的 xcode。所以我可以使用它,但我无法理解它在类中是如何工作的。
假设我有这个界面:
@interface AppDelegate : NSObject <NSApplicationDelegate>
{
@private
NSMutableDictionary* dictionary;
}
我在 init 方法中分配和初始化字典:
- (id) init
{
self= [super init];
if(self)
{
dictionary=[[NSMutableDictionary alloc]init];
}
return self;
}
在 dealloc 方法中,我无法将发布消息发送到字典,因为我在 ARC 下。所以当我通常分配内存时,我会这样做:
@autoreleasepool
{
NSMutableDictionary* dict=[[NSMutableDictionary alloc]init];
< use it>
}
PS:请原谅语法错误,我是直接写的,没有编译。
但是在课堂上,我应该把“@autoreleasepool”块放在哪里?