imagePickerController didFinishPickingMediaWithInfo给了我一个奇怪的图像

时间:2013-04-03 00:01:17

标签: ios xcode uiimage uiimagepickercontroller

我写了一些代码来添加用相机拍摄的照片并将其添加到UIImages的NSMutableArray中。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    [picker dismissModalViewControllerAnimated:YES];

    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

    self.description.text = [NSString stringWithFormat:@"image is %d by %d", image.size.width, image.size.height];

    //[self.imageArr addObject:image]

    //[self saveImages];
}

“self.description.text”是一个UILabel,我在iPhone上测试时用来获取信息(我的macbook太旧了,无法升级到上一个操作系统和Xcode版本)。

我发现当我将图像添加到imageArr时,应用程序崩溃了(我知道imageArr不是nil,我已经使用UILabel描述来检查)。

如果我注释掉addObject和saveImages函数,我发现在我拍照后,描述说UIImage的宽度为0,高度为1084850176.有没有人之前遇到过这个问题?我一直试图在应用程序中拍摄并保存照片几天,我似乎无法解决这个问题。

修改 我通过使用%f而不是%d来修复图像尺寸问题(感谢idz!)。

当我取消注释[self.imageArr addObject:image]行时,它仍然崩溃。崩溃报告说在运行该行时异常类型是EXC_CRASH(SIGABRT)。我真的不知道这意味着什么,但我确定imageArr不是nil而且它是一个NSMutableArray,所以我不明白它为什么会一直崩溃。

1 个答案:

答案 0 :(得分:0)

通常您必须分配并初始化self.imageArr

通常会导致这些错误的原因。此外,如果它是一个数组,请确保它是一个可变数组。