Производительность статического анализатора XCode при использовании синглетонов - PullRequest
1 голос
/ 16 июля 2011

У меня проблемы с пониманием того, как статический анализатор в XCode выявляет возможные утечки, связанные с синглетонами.В приведенном ниже коде меня предупреждают о возможной утечке в первой строке, а также в первом операторе возврата.Анализатор помещает эти предупреждения во второй оператор возврата.Поскольку я не делаю выделения в этих строках, я предполагаю, что именно доступ к синглтону и его возможное распределение вызывают это предупреждение.Может кто-нибудь объяснить мне, что здесь происходит со статическим анализатором?

        if ((self.tableView.editing & ([[[[GroupList sharedGroupList] newGroup] linkArray] count] < [[GrazeConstants sharedGrazeConstants] maxLinksPerGroup])) | 
            (([[[[GroupList sharedGroupList] newGroup] linkArray] count] == 0) & !self.tableView.editing)) {
            return ([[[[GroupList sharedGroupList] newGroup] linkArray] count]+1);
        } else {
            return ([[[[GroupList sharedGroupList] newGroup] linkArray] count]);
        }

1 Ответ

4 голосов
/ 16 июля 2011
Методы с префиксом

new эквивалентны паре alloc + init в соответствии с соглашениями об управлении памятью Какао. Статический анализатор предполагает, что ваш метод newGroup возвращает объект с сохраняемым счетом +1, а не с автоматически выпущенным.

Переименуйте метод (например, group или makeGroup) или добавьте атрибут NS_RETURNS_NOT_RETAINED , если вы не можете изменить имя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...