我试图弄清楚如何在各种视图控制器之间传递 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是否因为在释放之前被分配给视图控制器实例而没有被释放?