在ARC项目中的某个地方,我有:
//Class1.h
@interface Class1 {
NSDictionary * dict;
}
@end
//Class1.m
@implementation Class1
-(void)loadDict {
NSDictionary * dict = [[NSDictionary alloc] init];
// Now load couple of (NSString *, NSString *) pairs into the dictionary
...
}
-(void)releaseAllMemoryUsedByDict {
//TODO
}
@end
如何按需释放字典占用的所有内存?我想如果我有一个NSMutableDictionary,我可以调用它的removeAllObjects方法。我将如何为NSDictionary做到这一点?设置 dict = NULL 会起作用吗?
将其设置为 nil
将起作用,假设没有其他对象保留(具有对NSDictionary
的强引用)。
如果将NSDictionary
设置为 nil
或任何对象,则假设没有其他对象持有对它的引用(这在 ARC 环境中),它将被释放。