Цель C: проблема утечки памяти в методе класса - PullRequest
5 голосов
/ 02 июля 2011

Я получаю предупреждение об утечке памяти, как показано на скриншоте ниже.

enter image description here

Мне нужно несколько советов о том, как я могу устранить эту утечку памяти. Могу ли я сделать [самоотпуск] в конце метода?

Ответы [ 2 ]

6 голосов
/ 02 июля 2011

Вы не присваиваете объекту, возвращенному _sharedUserStockInfo, поэтому теряете ссылку и получаете утечку.При этом _sharedUserStockInfo останется nil, а метод также вернет nil.

3 голосов
/ 02 июля 2011
+(UserStockInfo*)shareduserStockInfo{

     @synchronized([UserStockInfo class])
     {

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

     return nil;
}
...