【发布时间】:2009-08-28 04:47:31
【问题描述】:
我试图弄清楚如何在各种视图控制器之间传递 UIImage,而不会复制 UIImage 并不必要地增加内存。使用下面的方法成功传递了图像,但我似乎无法稍后释放此 UIImage,这最终导致我的应用程序因 7MB 以上的数据而无法计算。我想知道的是,当我将 UIImage(属于我当前的视图控制器)传递给我将切换到下一个视图控制器,然后释放原始指针时,内存会发生什么?像这样:
-(IBAction)startEditing:(id)sender
{
EditViewController *controller = [[EditViewController alloc] initWithNibName:@"EditViewController" bundle:nil];
controller.delegate = self;
//imageDataPhoto1 is of type UIImage (from camera)
controller.editPhotoData1 = imageDataPhoto1;
[imageDataPhoto1 release];
imageDataPhoto1 = nil;
controller.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:controller animated:YES];
[controller release];
}
指针 imageDataPhoto1 的 DATA 是否因为在释放之前被分配给视图控制器实例而没有释放?
【问题讨论】:
标签: objective-c memory-management uiimage