2010-06-08 4 views
0

Я начал учиться с помощью инструмента, но я не могу понять это. После я начинаю мое приложение, интерфейс показывает, я ничего не делать и через несколько секунд я могу увидеть обнаружить утечку памяти: alt text http://img714.imageshack.us/img714/7735/instruments1.pngКак UIWindow # addSubview может вызвать утечку памяти?

Когда я взглянуть на второй утечке я могу увидеть следующий стек: alt text http://img3.imageshack.us/img3/5708/instruments2.png

При двойном щелчке на ячейке, связанной с моим кодом, я могу видеть, что это указывает на следующую строку кода:

[window addSubview:newPostUIViewController.view]; 

от метода:

- (void)applicationDidFinishLaunching:(UIApplication *)application {  
//creating view controller 
newPostUIViewController = [[NewPostUIViewController alloc] initWithNibName:@"NewPostView" bundle:nil]; 
newPostUIViewController.title = @"Post it!"; 
[window addSubview:newPostUIViewController.view]; 

// Override point for customization after application launch 
[window makeKeyAndVisible]; 
} 

Интересно, как это может быть причиной утечки? Я освобождаю newPostUIViewController в методе dealloc класса PostItAppDelegate.

Любые идеи, как это можно объяснить?

ответ

0

Глядя на link text, можно сказать, что это проблема симулятора, а не проблема с кодом.

0

Вы не указали autorelease или release, чтобы сбалансировать ваш init. На всякий случай, если вы еще не прочитали его, посмотрите на memory management guide, это отличная помощь.

+0

Спасибо за ваше предложение, однако, я освобождаю и newPostUIViewController и окно в методе dealloc PostItAppDelegate. Должен ли я назвать выпуск в другом месте? – Jakub

+0

@Jakub вы можете разместить еще какой-нибудь код, показывающий, как вы используете контроллер? Возможно, что контроллер имеет дополнительный запас, но не на этой линии. – slf

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