0

ARCプロジェクトのどこかで、私は次のことを行っています。

//Class1.h
@interface Class1 {
    NSDictionary * dict;
}

@終わり

//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

オンデマンドで、dictが占有するすべてのメモリを解放するにはどうすればよいですか?NSMutableDictionaryがあれば、そのremoveAllObjectsメソッドを呼び出すことができると思います。NSDictionaryではどうすればよいですか?dict = NULLの設定は機能しますか?

4

2 に答える 2

4

他のオブジェクトがを保持していない(強く参照している)nilと仮定すると、に設定すると機能します。NSDictionary

于 2012-06-27T11:27:31.840 に答える
4

、または任意のオブジェクトをに設定するNSDictionarynil、他のオブジェクトがそのオブジェクトへの参照を保持していないと想定して、オブジェクトが解放されます(これはARC環境では)。

于 2012-06-27T11:28:36.733 に答える