Статический анализатор говорит, что у меня есть утечка .... почему? - PullRequest
1 голос
/ 12 января 2011

Я думаю, что этот код должен быть в порядке, но Static Analyzer не нравится. Я не могу понять, почему и надеялся, что кто-то может помочь мне понять. Код работает нормально, результат анализатора просто глючит.

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

Coin является универсальным NSObject и имеет метод инициализации. myCoin является свойством текущего представления и имеет тип Coin. Я предполагаю, что это говорит мне, что я протекаю tempCoin.

На мой взгляд .h Я установил myCoin как свойство с неатомарным сохранением.

Я пытался автоматически выпустить код, как и этот нормальный выпуск, но Static Analyzer продолжает говорить:
1. Метод возвращает объект Objective-C со счетом удержания +1 (ссылка на владельца)
2. Объект, размещенный в строке 97, больше не используется после этой точки и имеет счет сохранения +1 (утечка объекта)

Строка 97 - это первая строка, которую я показываю.

1 Ответ

7 голосов
/ 12 января 2011

Поскольку статический анализатор ищет init, а не initialize.Он видит последнее и предполагает, что объект, возвращенный [Coin alloc], возвращает объект, отличный от initialize, таким образом, утечка первого объекта.

Измените имя метода на init, и статический анализатор будетбольше не сообщать об утечке.

...