我很接近终于完成了第一个放入商店的应用程序。一切正常,内存泄漏几乎完全不存在......除非我使用相机或从相机胶卷中选择图像。
如果用户选择相机与滚动....相机工作正常...拍照,然后当他们选择“使用”时,它会崩溃。相机胶卷也一样。我是一个菜鸟,所以如果我搞砸了什么,我不会感到惊讶。任何帮助/建议非常感谢...这是代码:
-(IBAction) getPhoto:(id) sender {
UIImagePickerController * picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
if((UIButton *) sender == choosePhoto) {
picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
} else {
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
}
[self presentModalViewController:picker animated:YES];
//[picker release];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissModalViewControllerAnimated:YES];
theimageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
[picker release];
}
答案 0 :(得分:0)
唯一突出我的问题是UIImagePickerControllerOriginalImage
是NSString
常量,所以你不想把它放在引号中:
theimageView.image = [info objectForKey:UIImagePickerControllerOriginalImage];
但即使该行失败,也只会将theimageView.image
设置为nil
,这可能不会导致崩溃。您应该在Xcode控制台中看到至少一些有关崩溃的信息,这将有所帮助。另外,请查看this SO answer中的提示。
答案 1 :(得分:0)
您的问题可能是,因为您使用的是原始图像,因为它类似于1400x750(不确定确切尺寸),当您将其设置为要显示的imageview图像时,可能会耗尽内存...您可能应该将图像调整为320x480或480x320以在图像视图中显示它,这可能会解决您的问题。
答案 2 :(得分:0)
更改
[picker dismissModalViewControllerAnimated:YES];
至
[self dismissModalViewControllerAnimated:YES];
这应该工作