2016-10-17 61 views
17

Resim seçiciden iOS 10Objective-C ve Xcode 8 öğelerinden bir görüntü seçerken. Ben bir hata alıyorum -Bilinmeyen türdeki bir görüntü formatı oluşturmak bir hatadır Objective-C Xcode 8

bilinmeyen tip bir resim biçimi oluşturma bir hata

olduğunu.

Önceki versiyon için sorun yoktu. İşte

kodum: Ben de diğer temsilci fonksiyonu çalıştı

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

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

ve görüntü recive temsilci yöntemi .. ..

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

ama hata gitmiyor.

Xcode 8 hatası olduğundan emin değilim?
Sorunla karşılaştı ve çözülmüş biri varsa lütfen düzeltmeye yardımcı olun.

+0

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

+1

hızlı bir versiyonu. Ayrıca yeni delege yöntemi ile çalıştım. –

+0

Bunu nasıl çözdünüz? –

cevap

-2

Bunu ekleyin.

CGBitmapInfo bitmapInfo = kCGImageAlphaNoneSkipLast; 

yerine CGBitmapInfo bitmapInfo = CGImageGetBitmapInfo(imageRef);

PS: Yani

şimdi benim CGContextRef context görünüyor

imgPicker.allowsEditing = YES; 
+0

Üzgünüm ben de denedim.Çalışma. –

+0

plist privacy-photo Kütüphane kullanım açıklaması. – Jr2000

+0

@ Jr2000 çalışmıyor – ArtStyle

-4

ben CGContextRef context değişken kullanılan BitmapInfo parametrenin aşağıdaki paraflanmasıyla ekleyerek bu sorunu çözdü aşağıdaki gibi

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

Sorunun nasıl çalıştığını açıklayabilir misiniz? –

-1

Güncelleme ÖNCEKİ Modelinden yeni yöntem

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

için UIImagePickerControllerDelegate yöntemi:

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

Bu benim için sorun giderilmiştir. IDE Versiyon: Xcode8.2.1

+0

Uyarı üretildi _before_ UIImagePickerControllerDelegate yöntemi çağrıldı. Bu nedenle, yöntemin tam imzasının konuyla ilgisi yoktur. – matt

32

Bu bir hatadır. Bu sadece yanlış bir uyarı. Uygulamanın çalışmasına kötü bir şey gelmiyor, bu yüzden uyarıyı dikkate almayın.

+4

IMAGE'yi seçtiğimde ve sonra imageData = UIImageJPEGRepresentation (theImage, 1) uygulamasının POST HTML ile gönderilmesini sağladığımda bir sorun var ve bu hatayı alıyorum ve görüntü yüklenmiyor –

+1

@BogdanBogdanov Ama hiçbir şey yok uyarı ile yap. Yapmaya çalıştığınız şey hakkında bir sorunuz varsa, bunu bir _question_ olarak sorun, böylece kodunuzu gösterebilir ve size yardımcı olabiliriz. – matt

+3

Merhaba @Chisx Bu uyarıyı hiç görmedim aslında programı durdurun, özür dilerim. – matt

3

i elma belgesinde geçmesi ve didFinishPickingMediaWithInfo yönteminde bu

UIImage *chosenImage = info[UIImagePickerControllerOriginalImage]; 

kullanın.

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

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

[picker dismissViewControllerAnimated:YES completion:NULL];  

} 

bu yardımı umuyoruz!

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

Bu kod soruyu yanıtlarken, sorunun nasıl ve/veya neden çözüldüğüne ilişkin ek bağlam sağlayarak yanıtın uzun vadeli değerini artıracaktır. –