2011-10-25 8 views
0

私はアナライザを実行しました。私は(それがカスタムセッターやゲッターを持っていない)性質を持っている:Objective-Cでのメモリ管理プロパティが+1の保持カウントを持つobjc-cオブジェクトを返します。UIGraphicsBeginImageContextWithOptions

@property (nonatomic, retain) NSMutableArray *myArray; 

その後、私は後でそれを使用しよう:

if ([[MyClass sharedDelegate].myArray containsObject:"test"]) 

それは「プロパティは+とObjective-Cのオブジェクトを返すと言います私は以来、このことを理解していない

+(MyApp*)sharedDelegate 
{ 
    return (MyApp*)[[UIApplication sharedApplication] delegate]; 
} 

:1「sharedDelegateは次のように定義され

を、カウントを保持私は保持がどこにあるかわかりません。私は、この方法でプロパティを使用すると、ちょうどmyArrayの値を返すgetterメソッドを使用していると思った。だからメモリリークはどこですか?

その後

UIGraphicsBeginImagecontextWithOptions(container.bounds.size, YES, 1.0); 

を指すオブジェクトがリークした:割り当てられたオブジェクトは、後で実行パスで参照されておらず、1

のカウントを保持して、私もこれを理解していないました、またはこれが最初のメモリリークにどのように関係しているかを示します。彼らは無関係のようです。

答えて

-1

保持されている参照を返すプロパティをマークしました。

+1

保持は、セットを保持することを意味し、getを保持しないことを意味します。 – morningstar

0

myArrayのゲッターとは何ですか? @合成、またはカスタム?

エラーはsharedDelegateにもあると思います。シングルトンを返すときは保持しないでください。

第2のものは無関係のようです。たぶんあなたはUIGraphicsEndImageContextに電話していないかもしれません。あなたが他の関数でそれを呼び出すと、それは大丈夫かもしれません。コンパイラは、同じ関数内の2つの関数を呼び出す通常のパターンを期待していますが、必須ではありません。

+0

sharedDelegateメソッドを追加して、エラーがまだ表示されないため、問題の絞り込みに役立ちます。ありがとう。 –

関連する問題