Помощь с непоследовательным (?) Предупреждением об утечке памяти в инструменте анализа Xcode - PullRequest
1 голос
/ 29 июля 2011

Может ли кто-нибудь объяснить мне, почему Analyze выдает мне предупреждение об утечке памяти для (nonatomic, assign) "newNonStaleStories" в операторе return здесь:

-(NSArray *)newNonStaleStories
{
    @synchronized (LIBRARY_ACCESS_LOCK)
    {
        newNonStaleStories = [self.managedObjectContext executeFetchRequest:self.newNonStaleStoriesInDescendingIndexOrderFetchRequest error:nil];
    }

    return newNonStaleStories;
}

, но не выдает никакого предупреждения для (nonatomic,assign) "staleStories" здесь:

-(NSArray *)staleStories
{
    @synchronized (LIBRARY_ACCESS_LOCK)
    {
        staleStories = [self.managedObjectContext executeFetchRequest:self.staleStoriesInDescendingIndexOrderFetchRequest error:nil];
    }

    return staleStories;
}

На самом деле, есть несколько других методов получения свойств в этом же классе, которые используют точно такой же шаблон, и ни один из них не имеет предупреждений памяти.

(FWIW, "managedObjectContext" и запросы на выборку в каждом случае (неатомные, сохраняют).)

Спасибо!

PS Это в текущем (v.4.1) приложении MacМагазин выпуска Xcode для Lion

1 Ответ

1 голос
/ 29 июля 2011

Может кто-нибудь объяснить мне, почему Analyze дает мне предупреждение об утечке памяти для (неатомного, присваивать) "newNonStaleStories"

Поскольку к имени добавляется префикс «new», а Правила управления памятью указывают, что вызывающий метод, имя которого начинается с «new», владеет возвращаемым объектом.

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