[self.object release] のように dealloc メソッドでオブジェクトを解放している Xcode では、この行は静的コード アナライザーを使用してメモリ リークとして表示されますが、インストゥルメントの実行中にはリークとして表示されません。
ここで私の質問は、異なる BWN[self.object release]
とは何かということです。[object release]
これを明確にしてください、
前もって感謝します。
[self.object release] のように dealloc メソッドでオブジェクトを解放している Xcode では、この行は静的コード アナライザーを使用してメモリ リークとして表示されますが、インストゥルメントの実行中にはリークとして表示されません。
ここで私の質問は、異なる BWN[self.object release]
とは何かということです。[object release]
これを明確にしてください、
前もって感謝します。
self.object
実際にはgetterメソッド([self object]
)を呼び出します。これはインスタンス変数を返しますobject
(または合成方法によって異なります)が、インスタンス変数は実際には保持されたオブジェクトを保持するため、を実行する必要があります[object release]
。@synthesize object = _object
プロパティとインスタンス変数を混同しないように、プロパティを合成することをお勧めします。プロパティはになりself.object
ますが、インスタンス変数はになり_object
、を呼び出します。[_object release];
する代わりに -
[self.object release]
あなたがする必要がある -
self.object = nil; or [object release];
[self.object release] は、プロパティの getter によって返されたオブジェクトに release 呼び出しを送信します。そして結果は、プロパティが割り当て/コピー/保持として定義されているかどうかによって異なります。