神秘(至少对我而言)问题。这就是我正在做的事情
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *neoImage = [[info objectForKey:UIImagePickerControllerEditedImage] retain];
NSLog(@"neoImage: %@", neoImage);
[self.images addObject:neoImage];
[neoImage release];
NSLog(@"self.images (inside delegate method): %@", self.images);
[self renderImages];
[picker dismissModalViewControllerAnimated:TRUE];
}
self.images声明为保留的可变数组并合成。我必须做错事,因为虽然上面的代码在用户从相机胶卷中选择图像时按预期工作,但是当他们拍摄新照片时这是NSLog输出:
[2690:307] neoImage: <UIImage: 0x24f160>
[2690:307] self.images (inside delegate method): (null)
我可能忽略了一些明显的东西?任何帮助将不胜感激。
注意:使用相机时我也会收到内存警告:
Received memory warning. Level=1
答案 0 :(得分:0)
...是的,我是个白痴。这是记忆问题。我在viewDidUnload上发布了self.ideas,我想在接收到内存警告时会释放视图,因为在收到内存警告时,图像选择器模式视图处于活动状态,而不是其父级。仅在启动相机时才会引发内存警告,而不是相机拣选器,因此根据所选内容的不同,会出现不同的行为。