1

我非常接近最终完成我的第一个应用程序放入商店。一切正常,内存泄漏几乎完全不存在......除非我使用相机或从相机胶卷中选择图像。

如果用户选择相机与胶卷......相机工作正常......拍照,然后当他们选择“使用”时它会崩溃。相机胶卷也是如此。我是菜鸟,所以如果我把事情搞砸了,我不会感到惊讶。非常感谢任何帮助/建议......这是代码:

    -(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];
}
4

3 回答 3

0

我唯一想到的问题是它UIImagePickerControllerOriginalImage是一个NSString常数,所以你不想把它放在引号中:

theimageView.image = [info objectForKey:UIImagePickerControllerOriginalImage];

但即使那条线失败了,它也只会设置theimageView.imagenil可能不应该导致崩溃的那个。您应该至少可以在 Xcode 控制台中看到有关崩溃的更多信息,这将有所帮助。另外,请查看此 SO 答案中的提示。

于 2010-08-17T15:28:00.147 回答
0

您的问题可能是,因为您使用原始图像,因为它类似于 1400x750(不确定确切尺寸),当您将其设置为要显示的图像视图的图像时,您可能内存不足...您可能应该将图像大小调整为 320x480 或 480x320 以在图像视图中显示它,这可能会解决您的问题。

于 2010-08-17T15:51:13.350 回答
0

更改
[picker dismissModalViewControllerAnimated:YES];

[selfdismissModalViewControllerAnimated:YES];
那应该工作

于 2012-05-02T17:24:29.450 回答