私はすぐにメモリリークを探している大規模なプロジェクトを調べていましたが@property (nonatomic, retain)
、に対応するものがないことに気づきrelease
ましたdealloc
。おっと、クイックフィックスだと思います。
後でクラッシュした後、よく見るとsetFoo
メソッドがオーバーライドされ、値は保持されていますが、ivarによっては保持されていません。この質問のために、NSDictionaryに入れられていると仮定します。
(OK、仮定したくない場合-設定値は実際にはcocos2dのCCSpriteでありsetNormalSprite
、子として追加されているため、保持されますが、単にivarに割り当てられます:
- (void)setNormalSprite:(CCSprite *)sprite
{
if (normalSprite) {
[self removeChild:normalSprite cleanup:YES];
normalSprite = nil;
}
normalSprite = sprite;
[self addChild:normalSprite];
(...omitted...)
}
)。
セッターが保持カウントを増加させるが、関連付けられているivarが保持されているためではない値の正しいキーワードは何ですか?