1

クラスの1つに次のプロパティがあります

@property (nonatomic, retain, readonly) NSMutableArray *children;

そして、このプロパティにメモリを割り当てるには、次の方法があります。

- (NSMutableArray *)children {
    if (!children) {
        children = [[NSMutableArray alloc] initWithCapacity:1];
    }

    return children;
}

xcode でプロファイラーを実行すると、上記の方法でメモリ リークが発生していることがわかります。このような状況でメモリを解放することについて混乱しています。以下のように autorelase で使用しても問題ありませんか。

children = [[[NSMutableArray alloc] initWithCapacity:1] autorelease];

これを解決するのを手伝ってくれる人がいますか。

4

2 に答える 2

1

あなたのdeallocで子供たちを解放しますか?そうでない場合は、それが問題です。

- (void)dealloc {
   [children release];
   ...
   [super dealloc];
}
于 2012-05-29T04:06:31.103 に答える