Создание формата изображения с неизвестным типом является ошибкой Objective-C Xcode 8

При выборе изображения из средства выбора изображений в iOS 10 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?
Если кто-то столкнулся с проблемой и решил, пожалуйста, помогите ее исправить.


person riaz hasan    schedule 17.10.2016    source источник
comment
stackoverflow.com/questions/39009889/ ?   -  person Larme    schedule 17.10.2016
comment
его быстрая версия. также я работал с новым методом делегата. но не работал.   -  person riaz hasan    schedule 17.10.2016
comment
как вы это решили??   -  person Badal Shah    schedule 25.05.2017
comment
я еще не смогла решить..   -  person riaz hasan    schedule 29.05.2017


Ответы (6)


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

person matt    schedule 27.12.2016
comment
есть проблема, когда я выбираю ИЗОБРАЖЕНИЕ, а затем позволяю imageData = UIImageJPEGRepresentation(theImage, 1) отправить его через POST HTML, я получаю эту ошибку, и изображение не загружается - person Bogdan Bogdanov; 19.02.2017
comment
@BogdanBogdanov Но это не имеет ничего общего с предупреждением. Если у вас есть вопрос о том, что вы пытаетесь сделать, задайте его как вопрос, чтобы вы могли показать свой код, и мы могли помочь. - person matt; 20.02.2017
comment
Привет @Chisx. Я никогда не видел, чтобы это предупреждение действительно останавливало программу, извините. - person matt; 06.05.2017

я просматриваю документ Apple и использую это

UIImage *chosenImage = info[UIImagePickerControllerOriginalImage];

в методе didFinishPickingMediaWithInfo.

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

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

[picker dismissViewControllerAnimated:YES completion:NULL];     

}

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

person Dharmesh Mansata    schedule 21.02.2017

Обновите метод UIImagePickerControllerDelegate до нового метода.

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

ИЗ ПРЕДЫДУЩЕГО СПОСОБА:

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

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

person Keesara Sriramreddy    schedule 27.12.2016
comment
Предупреждение генерируется до вызова метода UIImagePickerControllerDelegate. Поэтому точная сигнатура метода не имеет значения. - person matt; 27.12.2016

Добавь это.

imgPicker.allowsEditing = YES;
person Jr2000    schedule 18.10.2016
comment
plist добавить описание использования библиотеки Privacy-Photo. - person Jr2000; 18.10.2016

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

CGBitmapInfo bitmapInfo = kCGImageAlphaNoneSkipLast;

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

P.S:

Итак, теперь мой CGContextRef context выглядит следующим образом

CGContextRef context = CGBitmapContextCreate(NULL,
        imageSize.width,
        imageSize.height,
        CGImageGetBitsPerComponent(imageRef),
        0,
        colorSpace,
        bitmapInfo);
CGColorSpaceRelease(colorSpace);
person ArtStyle    schedule 21.10.2016
comment
Не могли бы вы объяснить, как это работает с моим вопросом? - person riaz hasan; 23.10.2016

person    schedule
comment
Хотя этот код может дать ответ на вопрос, предоставление дополнительного контекста относительно того, как и/или почему он решает проблему, улучшит долгосрочную ценность ответа. - person Donald Duck; 19.12.2017