Код ниже - это обратный вызов средства выбора изображений, который запускается после того, как пользователь делает фотографию с помощью камеры / или выбирает фотографию из библиотеки.
Может кто-нибудь объяснить мне, почему первая версия работает, а вторая выдает ошибку?
Первая версия передает UIImage из синтезированного UIImageView в метод scaleAndRotateImage.
Вторая версия объявляет локальный UIImageView и передает изображение в метод scaleAndRotateImage.
Это первая версия, которая работает ::
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissModalViewControllerAnimated:YES];
VC_Create_Preview *vc_create_preview = [[VC_Create_Preview alloc] initWithNibName:@"VC_Create_Preview" bundle:nil];
//UIImageView *temp = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
//temp.image = [self scaleAndRotateImage:temp.image];
//vc_create_preview.origImage = temp;
srcImageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
srcImageView.image = [self scaleAndRotateImage:srcImageView.image];
vc_create_preview.origImage = srcImageView;
[self.navigationController pushViewController:vc_create_preview animated:YES];
}
Но 2-я версия ниже этого не делает и выдает ошибку при вызове метода scaleAndRotateImage (обратите внимание, что при отладке я даже не могу перейти в "scaleAndRotateImage) *
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissModalViewControllerAnimated:YES];
VC_Create_Preview *vc_create_preview = [[VC_Create_Preview alloc] initWithNibName:@"VC_Create_Preview" bundle:nil];
UIImageView *temp = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
temp.image = [self scaleAndRotateImage:temp.image];
vc_create_preview.origImage = temp;
//srcImageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
//srcImageView.image = [self scaleAndRotateImage:srcImageView.image];
//vc_create_preview.origImage = srcImageView;
[self.navigationController pushViewController:vc_create_preview animated:YES];
}
Ошибка 2-й версии:
Pending breakpoint 1 - ""VC_Create_Capture.m":97" resolved
2012-01-04 20:33:52.674 MultiInterfaceTest[430:f803] -[UIImage image]: unrecognized selector sent to instance 0x68aac00
2012-01-04 20:33:52.717 MultiInterfaceTest[430:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImage image]: unrecognized selector sent to instance 0x68aac00'
*** First throw call stack:
(0x13c2052 0x1553d0a 0x13c3ced 0x1328f00 0x1328ce2 0x35df 0x211c52 0xbfaa305 0xbfbe5fd 0xc022fef 0x2dde39 0x2dd143 0x2de3cf 0x2e0a31 0x2e098c 0x2d93e7 0x41812 0x41ba2 0x28384 0x1baa9 0x12acfa9 0x13961c5 0x12fb022 0x12f990a 0x12f8db4 0x12f8ccb 0x12ab879 0x12ab93e 0x19a9b 0x23b8 0x2315)
terminate called throwing an exceptionCurrent language: auto; currently objective-c