Почему память все еще держится, когда я снимаю с просмотра? - PullRequest
1 голос
/ 19 июля 2010

Я сейчас работаю над проектом ipad и нашел это.так вот моя структура

я подклассифицировал uiviewcontroller как настроенный VC, как это

@protocol customizedVCDelegate

-(void)viewclosed:(UIView *)view oldviewcontroller:(UIViewController *)oldvc newvcname:(UIViewController *)newvc;

@end


@interface customizedVC : UIViewController {
    id <customizedVCDelegate> delegate;
}

@property (assign) id <customizedVCDelegate> delegate;

@end

в demoipadappDelegate, который является основой для переключения представлений, я взял протокол и реализовал функцию viewclosed.Я получил много просмотров, каждый вид будет загружен из пера.поэтому я загружаю первый в demoipadappDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    //loading openvinview
    openingVC *vc = [[openingVC alloc] initWithNibName:@"openingview" bundle:nil];
    vc.delegate = self; 
    [window addSubview:vc.view];
    [window makeKeyAndVisible];

    return YES;
}

для переключения представлений, я буду запускать viewClosed в каждом viewcontroller.Например, я получил VC1 и хочу перейти на VC2.я запускаю представление, закрытое в vc1.и поскольку делегат vc1 является demoipadappDelegate, то на самом деле все делегаты vc являются demoipadappDelegate.поэтому demoipadappDelegate получит событие и сделает это.это в demoipadappDelegate

-(void)viewclosed:(UIView *)view oldviewcontroller:(UIViewController *)oldvc newvcname:(UIViewController *)newvc;
{

    self.currentVC = (customizedVC *)newvc;
    self.currentVC.delegate = self;
    [window addSubview:self.currentVC.view];

    [view removeFromSuperview];
    [oldvc release];

}

Я ожидал, что использование memery уменьшится.это не так.Я также проверил, что в каждом vc я уже вручную выпускаю все, что я выделяю.так что это не так.

извините за мой плохой английский, я надеюсь, что я объяснил достаточно ясно

1 Ответ

1 голос
/ 19 июля 2010

Вы уверены, что используете правильный корпус?

Метод называется removeFromSuperview, а не removefromsuperview.

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