Почему этот ImageView не выпускается? - PullRequest
0 голосов
/ 24 апреля 2011

У меня есть заставка, которая отображается при запуске приложения, и мой клиент хочет, чтобы я оставался видимым в течение x раз. Все отлично работает, кроме изображения никогда не выпускается?

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

    NSString *fileLocation = [[NSBundle mainBundle] pathForResource:@"splash_page" ofType:@"png"];

    NSData *imageData = [[NSData alloc] initWithContentsOfFile:fileLocation];
    UIImage *launchImage = [[UIImage alloc] initWithData:imageData];
    [imageData release], imageData = nil;

    UIImageView *launchImageView = [[UIImageView alloc] initWithImage:launchImage];
    launchImageView.frame = CGRectMake(0, 
        0, 
        [[UIScreen mainScreen] bounds].size.width , 
        [[UIScreen mainScreen] bounds].size.height);
    launchImageView.tag = 121;
    [launchImage release], launchImage = nil;

    [self.window addSubview:launchImageView];
    [launchImageView release], launchImage = nil;   

    [self.window makeKeyAndVisible];    
    [self performSelector:@selector(initApp) withObject:nil afterDelay:kInitDelay];

    return YES;
}

- (void)initApp
{
    [[UIApplication sharedApplication] setStatusBarHidden:NO];

    UIImageView *launchImageView = (UIImageView*)[self.window viewWithTag:121];
    [launchImageView removeFromSuperview];

    RootNavController *navController = [[RootNavController alloc] initRootController];
    self.rootNavController = navController;
    [self.window addSubview:navController.view];
    [navController release], navController = nil;
}

Насколько я понимаю, removeFromSuperview вызывает выпуск для представления, поэтому его следует освободить, однако я все еще могу видеть Malloc размером 524 КБ в инструменте распределения объектов Intruments, который, несомненно, является изображением. Ответственная библиотека = libRIP.A.dylib и Ответственный вызывающий абонент ripl_Create.

Если я закомментирую код страницы-заставки и запустлю NavController напрямую, у меня не будет этого 524 КБ.

Есть идеи?

1 Ответ

0 голосов
/ 24 апреля 2011

Почему вы не используете Default.png в качестве заставки? Переименование вашего «Splash_page.png» в «Default.png» автоматически покажет загрузочную страницу, а затем просто добавит UIImageView (с Default.png) в MainWindow и через x раз запустит ваш rootViewController.

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