2016-10-17 6 views
17

При выборе изображения из подборщика изображений в iOS 10Objective-C и Xcode 8. Я получаю сообщение об ошибке -Создание формата изображения с неизвестным типом является ошибкой Objective-C Xcode 8

Создание формата изображения с неизвестным типом ошибка

.

Это было нормально для предыдущей версии.

Вот мой код:

UIImagePickerController* imgPicker=[[UIImagePickerController alloc] init]; 
imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
imgPicker.delegate = self; 
[self presentViewController:imgPicker animated:YES completion:nil]; 

и метод делегата Получать изображение ..

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
     [picker dismissViewControllerAnimated:YES completion:NULL]; 
     UIImage *myImage = [info objectForKey:UIImagePickerControllerOriginalImage]; 
} 

Я также попробовал другие функции делегата ..

-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{ 
} 

но ошибка не идет.

Я не уверен, что это ошибка Xcode 8?
Если кто-то столкнулся с проблемой и решился, помогите ее исправить.

+0

http://stackoverflow.com/questions/39009889/xcode-8-creating-an-image-format-with-an-unknown-type-is-an-error? – Larme

+1

его быстрая версия. также я работал с новым делегатом method.but не работает. –

+0

как вы это решили ?? –

ответ

-2

Добавить это.

imgPicker.allowsEditing = YES; 
+0

Извините, я тоже пробовал это. Не работает. –

+0

plist add privacy-photo Описание использования библиотеки. – Jr2000

+0

@ Jr2000 это тоже не работает – ArtStyle

-4

Я решил эту проблему, добавив следующую инициализацию BitmapInfo параметра, который используется в CGContextRef context переменной:

CGBitmapInfo bitmapInfo = kCGImageAlphaNoneSkipLast; 

вместо CGBitmapInfo bitmapInfo = CGImageGetBitmapInfo(imageRef);

PS:

Так теперь мои CGContextRef context внешности как указано ниже

CGContextRef context = CGBitmapContextCreate(NULL, 
     imageSize.width, 
     imageSize.height, 
     CGImageGetBitsPerComponent(imageRef), 
     0, 
     colorSpace, 
     bitmapInfo); 
CGColorSpaceRelease(colorSpace); 
+0

Не могли бы вы объяснить, как это работает с моим вопросом? –

-1

Обновление метод UIImagePickerControllerDelegate к новому методу

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info 

С предыдущего метода:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 

Это исправили проблему для меня. IDE Версия: Xcode8.2.1

+0

Предупреждение генерируется _before_ вызывается метод UIImagePickerControllerDelegate. Поэтому точная подпись метода не имеет ничего общего с этим вопросом. – matt

32

Это ошибка. Это просто ложное предупреждение. Ничего плохого в работе приложения не происходит, поэтому игнорируйте предупреждение.

+4

есть проблема, когда я выбираю IMAGE, а затем даю imageData = UIImageJPEGRepresentation (theImage, 1), чтобы отправить его через POST HTML. Я получаю эту ошибку, и изображение не загружается –

+1

@BogdanBogdanov Но это не имеет ничего общего с сделайте это с предупреждением. Если у вас есть вопрос о том, что вы пытаетесь сделать, спросите его как _question_, чтобы вы могли показать свой код, и мы можем помочь. – matt

+3

Привет @Chisx Я никогда не видел, чтобы это предупреждение фактически останавливало программу, извините. – matt

3

я пройти через яблочный документ и использовать этот

UIImage *chosenImage = info[UIImagePickerControllerOriginalImage]; 

в didFinishPickingMediaWithInfo метода.

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

UIImage *chosenImage = info[UIImagePickerControllerOriginalImage]; 
imageViewPreview.image = chosenImage; 

[picker dismissViewControllerAnimated:YES completion:NULL];  

} 

надеюсь, что эта помощь!

0
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info 
{ 
    UIImage *tempImage = [info objectForKey:UIImagePickerControllerEditedImage]; 
    UIGraphicsBeginImageContext(tempImage.size); 
    [tempImage drawInRect:CGRectMake(0, 0, tempImage.size.width, tempImage.size.height)]; 
    UIImage *image = [UIImage imageWithCGImage:[UIGraphicsGetImageFromCurrentImageContext() CGImage]]; 

    [self.myimageview setImage:image]; 
    UIGraphicsEndImageContext(); 
    [picker dismissViewControllerAnimated:YES completion:nil]; 
} 
+1

Хотя этот код может ответить на вопрос, предоставляя дополнительный контекст относительно того, как и/или почему он решает проблему, улучшит долгосрочную ценность ответа. –