2011-01-11 7 views
1

このコードはうまくいくはずですが、スタティック・アナライザーはそれが気に入らないと思います。私は理由を理解することができず、誰かが私の理解を助けてくれることを期待していました。コードは正常に動作し、アナライザの結果はバグです。静的アナライザーには、私にはリークがあると言われています...なぜですか?

Coin *tempCoin = [[Coin alloc] initalize]; 
self.myCoin = tempCoin; 
[tempCoin release]; 

​​ジェネリックNSObjectあり、それはinitalize方法があります。 myCoinは現在のビューのプロパティで、タイプは​​です。私はそれが私に漏れていると伝えていると思う。tempCoin

私のビューの.hでは、私はmyCoinを非構造のプロパティとして設定しています。

Iコードならびにこの通常のリリースを自動解放を試みたが、静的アナライザは言い続け:
1.方法+1保持カウント(所有参照)とObjective-Cのオブジェクトを返す
2。 97行目に割り当てられたオブジェクトは、このポイントの後では参照されなくなり、保持カウント+1(オブジェクトがリーク)しています。

97行目が最初に表示されます。

答えて

7

スタティック・アナライザはinitを探しているため、initializeではありません。これは後者を参照し、[Coin alloc]によって返されたオブジェクトがinitializeとは異なるオブジェクトを返すと仮定して、最初のオブジェクトをリークします。

メソッドの名前をinitに変更すると、スタティックアナライザはリークを報告しなくなります。

+0

ありがとうございました。それがそれでした。 Ahhhhh ...警告なしでコンパイルするコード。 – Walter

関連する問題