xcode 4.2 Analyzeツールからのメッセージ

Xcode 4.2のAnalyzeコマンドのメッセージを少し混乱させました。それはインスタンス変数activityViewについて不平を言う。

enter image description here

Analyzeツールは、activityViewの潜在的なリークについて[self startRefresh:NULL]行に文句を言います。

  1. activityViewはインスタンス変数であり、合成されます
  2. dealloc()でactivityViewを公開しています
  3. 私の理解によれば、setterが(self.activityViewを介して暗黙的に)使用されると、以前の値が解放されます。そうですか?

だから、私はどのように分析ツールから警告を読むべきですか?または私は何が必要ですか?

THX。

0
私の答えで両方の解決策を試してみて、アナライザがどのように反応するかを見てください。
追加された 著者 TeaCupApp,
私は、activityViewはインスタンス変数ではなく@propertyであると言うことを前提としています。
追加された 著者 Firoze Lafeer,

1 答え

@propertyにretain属性があると仮定すると、setterはこの新しいアクティビティビューを保持するので、alloc/initから+1カウントを引き続き受け取ります。

だからあなたはこのようなことをすることができます:

self.activityView = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] autorelease];

alloc/initのバランスを取るために新しいインスタンスを自動解放してください。

アナライザーはactivityViewの以前の値について警告していません。新しいインスタンスについて警告しています。alloc/initと@property(retain)の後に実質的に+2保持カウントがあります。

2
追加された