У меня есть приложение MultiView, и у меня есть некоторые проблемы с памятью, и я был бы признателен за несколько советов. У меня есть приложение, которое первоначально загружает контроллер переключателя, который позволяет пользователю переключаться между некоторыми представлениями.В какой-то момент во время приложения я хочу удалить контроллер viewview и добавить другое подпредставление в окно. Поэтому я получил доступ к делегату общего приложения, удалил контроллер switchview и вставил второй. Я не понимаюесли это правильный подход, и я боюсь, что произойдет утечка памяти, так как я печатаю значение retainCount второго контроллера, и оно показывает 19 !!!!!
Ниже приведены снимки моего кода.. Это правильный подход?Как избежать этих утечек памяти?
Хорошо, в моем ApplicationDelegate у меня есть два контроллера представления, которые я также устанавливаю как свойства
MyAppDelegate.h
@class SwitchViewController;
@class SecondController;
@interface MyAppDelegate : NSObject <UIApplicationDelegate> {
SwitchViewController *switchViewController;
SecondController *secondController;
}
@property (nonatomic, retain) IBOutlet SwitchViewController *switchViewController;
@property (nonatomic, retain) IBOutlet SecondController *secondController;
@property (nonatomic, retain) IBOutlet UIWindow *window;
@end
в файле .m, который я добавляю
[self.window addSubview:switchViewController.view];
[self.window makeKeyAndVisible];
обратите внимание, что я синтезирую эти контроллеры и освобождаю их в функции dealloc
Теперь вот моя проблема!В SwitchViewController.m я хочу получить доступ к делегату моего приложения, удалить текущий SwitchViewController и поместить свой secondController в качестве подпредставления окна:
SwitchViewController.m
SecondController *secondController2= [[SecondController alloc] init];
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate.switchViewController.view removeFromSuperview];
appDelegate.secondController = secondController2;
[appDelegate.window addSubview:appDelegate.secondController.view];
[secondController2 release];
Вот вопрос.Когда я распечатываю [appDelegate.secondController retainCounter], я получаю 19. Это правильный подход.Есть ли у меня утечки памяти?
Заранее спасибо,
Андреас