У меня есть заставка, которая отображается при запуске приложения, и мой клиент хочет, чтобы я оставался видимым в течение 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 КБ.
Есть идеи?