2010-07-19 5 views
1

В настоящее время я работаю над проектом ipad и нашел это. так вот моя структураПочему память все еще держится, когда я удаляю из памяти?

я подклассы UIViewController, как customizedVC, как этот

@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 функции. У меня много просмотров, каждый вид будет загружен из nib. поэтому я загрузить первый в 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. Я запускаю viewClosed в vc1. и поскольку делегат vc1 является demoipadappDelegate, infact все делегат 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]; 

} 

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

жаль мой бедный английский, я надеюсь, что я объяснил достаточно ясно

ответ

1

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

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

+0

Да, корпус был прав, не вызванный орфографией, но спасибо в любом случае – shawhu

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