アプリケーションデリゲートファイルでActivityIndicatorCクラスを使用し、それにオブジェクトを割り当てますが、ここでメモリリークが発生します。
self.ActIndicator=[[ActivityIndicatorC alloc] initwithWindow:window];
私はActIndicatorをdeallocセクションでリリースしますが、上記のコードで同じ潜在的なリークが発生するまで。
誰もがそれを提案できるあらゆる解決策。
アプリケーションデリゲートファイルでActivityIndicatorCクラスを使用し、それにオブジェクトを割り当てますが、ここでメモリリークが発生します。
self.ActIndicator=[[ActivityIndicatorC alloc] initwithWindow:window];
私はActIndicatorをdeallocセクションでリリースしますが、上記のコードで同じ潜在的なリークが発生するまで。
誰もがそれを提案できるあらゆる解決策。
オブジェクトは2回保持されます。使用するときは、インターフェイスに配置しself.ActIndicator =
たを使用してコンパイラが作成したセッターを呼び出し@property(retain,...)
ます。
self.ActIndicator=[[ActivityIndicatorC alloc] initwithWindow:window];
^ retainCount + 1 ^^^^^ and +1 because of this.
あなたは書くことができます
self.ActIndicator = [[[ActivityIndicatorC alloc] initwithWindow:window] autorelease];
また
ActIndicator = [[ActivityIndicatorC alloc] initwithWindow:window];
また、名前をactIndicatorまたは(さらに良い)activityIndicatorに変更する必要があります。クラス名のみが大文字で始まる必要があります。
ActIndicatorがプロパティを保持するように設定されている場合。次に、.hファイルにリークがあります。@ property(nonatominc、retain)を@property(nonatominc、assign)または
ActivityIndicatorC *theActivity= [[ActivityIndicatorC alloc] initwithWindow:window];
self.ActIndicator=theActivity;
[theActivity release];
alloc-initで作成されたオブジェクトを手動で解放する必要があります。したがって、[ActIndicatorリリース]を作成する必要があります。または単に自動リリースします。