Я начал учиться с помощью инструмента, но я не могу понять это. После я начинаю мое приложение, интерфейс показывает, я ничего не делать и через несколько секунд я могу увидеть обнаружить утечку памяти: 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.
Любые идеи, как это можно объяснить?
Спасибо за ваше предложение, однако, я освобождаю и newPostUIViewController и окно в методе dealloc PostItAppDelegate. Должен ли я назвать выпуск в другом месте? – Jakub
@Jakub вы можете разместить еще какой-нибудь код, показывающий, как вы используете контроллер? Возможно, что контроллер имеет дополнительный запас, но не на этой линии. – slf