2012-06-27 4 views
0

Где-то в проекте ARC, у меня есть:сила NSDictionary освободить память

//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 работать?

+3

Установка его на нуль будет выполнять эту работу. Если его все еще не работает, вырывайте все страницы Словаря :) – Matt

ответ

4

Установка в nil будет работать, при условии, что ни один другой объект не держит на (имеет сильный ссылка) на NSDictionary.

+1

Чувствует себя почти как java :-) – user674669

+3

ewww, пожалуйста, не говорите об этом. –

4

Если вы установите NSDictionary в nil, или любой другой объект, он будет освобожден, если предположить, что никакой другой объект не держит ссылку на него (это на окружающую среду ARC).

Смежные вопросы