выгрузка представления в делегате приложения - PullRequest
0 голосов
/ 21 декабря 2010

У меня есть следующие файлы делегатов.Мой AboutViewController в MainWindow.xib загружает AboutViewController.xib, и к нему подключен выход aboutViewController.Кроме того, navController загружается из другого ViewController.xib.Представление AboutViewController отображается при запуске и удаляется через одну секунду, поэтому я освобождаю его контроллер представления, задав для ivar значение nil.

Поскольку контроллер представления about загружается XCode автоматически, я делаю что-то не так (утечкапамяти и т. д.), установив его вручную на ноль?почему или почему нет?

Спасибо

- MyProjAppDelegate.h

#import <UIKit/UIKit.h>
@interface MyProjAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    UIViewController *aboutViewController;
    UINavigationController *navController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UIViewController *aboutViewController;
@property (nonatomic, retain) IBOutlet UINavigationController *navController;
@end

- MyProjAppDelegate.m

#import "MyProjAppDelegate.h"
#import "AboutViewController.h"

@implementation MyProjAppDelegate
@synthesize window;
@synthesize aboutViewController;
@synthesize navController;

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    [window addSubview:aboutViewController.view];
    [window makeKeyAndVisible];

    [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(showMainView) userInfo:nil repeats:NO];
}

-(void)showMainView {
    [aboutViewController.view removeFromSuperview];
    self.aboutViewController = nil;

    [window addSubview:navController.view];
}

- (void)dealloc {
    [navController release];
    [aboutViewController release];
    [window release];
    [super dealloc];
}
@end

1 Ответ

2 голосов
/ 21 декабря 2010

Поскольку контроллер представления о загружается XCode автоматически, я что-то делаю не так (утечка памяти и т. Д.), Устанавливая его вручную равным нулю?

Нет, выне делает ничего плохого, потому что вы используете метод доступа к свойству (self.aboutViewController), чтобы установить его на nil;аксессор позаботится о release.(И вы правильно удаляете его из суперпредставления до выпуска его: -)

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