私は現在、別の開発者によって開始された iOS アプリケーションを開発しています。
通常、すべてのインスタンス変数のプロパティを作成します(int、boolなどに割り当て/すべてのクラスに保持)。
したがって、私のプロジェクトでは、この行でリークが発生します。
myVar = [[NSString alloc] init]; (alloc/init +1, retain in setter +1, release in dealloc -1 => +1)
だから私は使用します:
NSString *tmpMyVar = [[NSString alloc] init];
[self setMyVar: tmpMyVar];
[tmpMyVar release];
または:
NSString *tmpMyVar = [[[NSString alloc] init] autorelease];
[self setMyVar: tmpMyVar];
この新しいプロジェクトでは、以前の開発者は @property/@synthesize を使用していなかったので、このコンテキストで前のコード行の結果がどうなるか疑問に思っています (setter を呼び出していないと思います)。メモリーリーク?
前の開発者は私と同じように dealloc メソッドで変数を解放します。
どうもありがとうございました!