2012-02-21 1 views
0

Что делает программа, это просто выделить объект, а затем освободить его.Xcode/Instruments/Утечки: может ли он показывать красную линию, где, по-видимому, нет утечки?

Я новичок в инструменты, так что я не уверен, что я interpetingh этого права:

Instruments screenshot

Красная линия показывает, есть утечка в точке, где я выделить этот объект. Но по деталям вы можете видеть, что он был выпущен, а refcount вернулся к 0. Так почему же красная линия в первую очередь, что это именно говорит мне?

EDIT: это обнаруженная «утечка». Код от моего UIViewController:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    Plant *plant = [[Plant alloc] initWithWeight:3 withSpecies:@"carrot"]; 

    [plant release]; 
} 
+0

Не могли бы вы также добавить источник для программы? – Mankarse

+0

Там. Я не думаю, что необходимо размещать источник для завода, так как информация об утечке сообщается прямо здесь. –

+0

«initWithWeight: withSpecies:' хранить 'self' где угодно? Создает ли он какие-либо блоки? Проходит ли он 'self' в качестве аргумента для любых функций или сообщений? –

ответ

0

Я нашел его.

У класса был метод dealloc, который не вызывал [super dealloc] в конце.

1

если у вас есть @property типа Plant.

, эта утечка может быть объяснено с помощью

self.plant = someobject //some object retained. /(using setter) 

plant = someother object // previous value in self.plant leaked 

-(void) dealloc 
{ 
[plant release]; 
[super dealloc]; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^