2011-07-02 19 views
4

下記のスクリーンショットに示すように、メモリリークの警告メッセージが表示されます。目的C:クラスメソッドでのメモリリークの問題

enter image description here

私は、このメモリリークを解決できる方法についていくつかのアドバイスを必要としています。メソッドの最後に[自己リリース]をしてもいいですか?

答えて

6

返されたオブジェクトを_sharedUserStockInfoに割り当てておらず、参照および漏れを失っています。その上に_sharedUserStockInfonilのままで、メソッドはnilも返します。

+0

これを修正するために必要なことはアドバイスできますか? – Zhen

+0

@Zhen、まさに言われたこと。 "*あなたは_sharedUserStockInfo *に返されたオブジェクトを割り当てていません"ので、 '_ [self alloc] init 'を' _sharedUserStockInfo'に代入してください。 – sidyll

+0

@sidyll、ご返信ありがとうございます。私はそれをした後、メソッドの最後に_shareUserStockInfoをリリースする必要がありますか? – Zhen

3
+(UserStockInfo*)shareduserStockInfo{ 

    @synchronized([UserStockInfo class]) 
    { 

     if(! _sharedUserStockInfo) 
      _sharedUserStockInfo= [[self alloc]init]; 
     return _sharedUserStockInfo; 
    } 

    return nil; 
}