【发布时间】:2013-04-03 00:01:16
【问题描述】:
我编写了一些代码来添加用相机拍摄的照片并将其添加到 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”是我在 iPhone 上测试时用来获取信息的 UILabel(我的 macbook 太旧,无法升级到最新的操作系统和 Xcode 版本)。
我发现当我将图片添加到我的imageArr时,应用程序崩溃了(我知道imageArr不是nil,我已经使用描述UILabel检查了)。
如果我注释掉addObject和saveImages函数,我发现我拍照后,描述说UIImage的宽度为0,高度为1084850176。以前有人遇到过这个问题吗?这几天我一直在尝试在应用中拍摄和保存照片,但我似乎无法解决这个问题。
编辑: 我通过使用 %f 而不是 %d 解决了图像尺寸问题(感谢 idz!)。
当我取消注释 [self.imageArr addObject:image] 行时,它仍然崩溃。崩溃报告说运行该行时异常类型为 EXC_CRASH (SIGABRT)。我真的不知道这意味着什么,但我确定 imageArr 不是 nil 并且它是一个 NSMutableArray,所以我不明白为什么它一直在那里崩溃。
【问题讨论】:
-
image.size.width和image.size.height是CGFloats 所以你应该使用%f或%g来打印它们。此外,您应该通过崩溃的意思添加更多信息...您看到什么消息? -
天啊!我固定切换到 %f 并且尺寸现在是正确的,但是当我取消注释 [self.imageArr addObject:image] 行时它仍然崩溃。崩溃报告说运行该行时异常类型为 EXC_CRASH (SIGABRT)。我真的不知道这意味着什么,但我确定 imageArr 不是 nil 并且它是一个 NSMutableArray,所以我不明白为什么它一直在那里崩溃。
-
为什么不用NSLog给自己发送描述性消息???为什么不单步执行调试器中的代码,以便查看所有这些东西的真正价值?您正在通过 guesswork 编程!
-
你能告诉我self.imageArr和saveImages方法的alloc init部分吗
-
@Matt - 我无法从我的设备上进行调试,因为我使用的是过时的 Xcode 版本,而我的 iPhone 具有最新的操作系统。我还不太了解如何在 iPhone 上进行调试,所以是的,我应该更多地使用 NSLog,我很快就会看看。
标签: ios xcode uiimage uiimagepickercontroller