【发布时间】:2010-03-03 21:17:43
【问题描述】:
这很奇怪,因为这个错误不会一直发生......
我有以下代码:
- (IBAction)getPhoto:(id)sender {
UIImagePickerController * picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
#if TARGET_IPHONE_SIMULATOR
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
#else
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
#endif
[self presentModalViewController:picker animated:YES];
}
使用相应的委托选择器
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *image = [[info objectForKey:@"UIImagePickerControllerOriginalImage"] imageByScalingToSize:CGSizeMake(480, 320)];
[[self imageView] setImage:image];
[picker dismissModalViewControllerAnimated:YES];
}
奇怪的是,有时图像会出现在 imageView 中,有时则不会。我打过电话
(gdb) po UIImagePNGRepresentation(图像)
在 setImage 之后将输出填充到文件中。该文件是一个完美的 png。
有没有人有同样的经历?有人找到解决办法了吗?
提前致谢
最大
【问题讨论】:
-
让它更奇怪一点。在调试器窗口中,我检查了 imageView _storage 中的指针,它按预期从 0x0 更改为新指针,与我在图像中看到的指针相同。这真的很奇怪。
-
我为图像添加了一个属性并将图像存储在该属性中。我在不同的 IBAction 中设置了一个断点,执行了操作,在调试器窗口中我可以看到,图像仍然指向相同的内存地址。 po png 表示为我提供了正确图片的数据。似乎与 UIImageView 相关(_storage 在执行第二个 IBAction 后立即指向 0x0)
-
我在 viewDidLoad 上设置了一个断点,并且在使用设备时执行了选择器。在模拟器中,不调用选择器。奇怪。
标签: iphone uiimageview uiimage camera