2016-10-17 29 views
17

從圖像選擇器中選擇一個圖像iOS 10Objective-CXcode 8。我得到一個錯誤 -創建一個未知類型的圖像格式是一個錯誤Objective-C Xcode 8

創建一個未知類型的圖像格式是一種錯誤

以前的版本可以。

這裏是我的代碼:

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

和委託方法來recive的形象..

- (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的bug嗎?
如果有人遇到問題並解決,請幫助解決。

+0

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

+1

其快捷版本。我也用新的委託方法工作,但不工作。 –

+0

你是如何解決這個問題的? –

回答

-2

加入此項。

CGBitmapInfo bitmapInfo = kCGImageAlphaNoneSkipLast; 

,而不是 CGBitmapInfo bitmapInfo = CGImageGetBitmapInfo(imageRef);

PS:

所以現在我CGContextRef context長相

imgPicker.allowsEditing = YES; 
+0

對不起,我也試過這個。沒有工作。 –

+0

plist add privacy-photo圖書館使用說明。 – Jr2000

+0

@ Jr2000它不工作太 – ArtStyle

-4

我加入這CGContextRef context變量使用BitmapInfo參數以下初始化解決了這個問題如下

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

警告在調用UIImagePickerControllerDelegate方法之前生成。因此,該方法的確切簽名與此事無關。 – matt

32

這是一個錯誤。這只是一個虛假的警告。應用程序的工作沒有壞事發生,所以請忽略警告。

+4

有一個問題,當我選擇IMAGE,然後讓imageData = UIImageJPEGRepresentation(theImage,1)通過POST HTML發送它我收到此錯誤並且圖像未上傳 –

+1

@BogdanBogdanov但是這沒有任何做這個警告。如果你對你想要做的事情有任何疑問,可以把它當作一個_question_,這樣你就可以展示你的代碼,我們可以提供幫助。 – matt

+3

嗨@Chisx我從來沒有見過這個警告實際上停止了程序,對不起。 – matt

3

我經過蘋果的文件,在didFinishPickingMediaWithInfo方法使用該

UIImage *chosenImage = info[UIImagePickerControllerOriginalImage]; 

- (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

雖然此代碼可能會回答問題,但提供有關如何解決問題和/或爲何解決問題的其他上下文可以提高答案的長期價值。 –

相關問題