2016-10-31 15 views
5

tôi nhận được một lỗi khi lựa chọn một hình ảnh với UIImagePicker:Xcode 8 - nhanh chóng 3: Tạo một định dạng hình ảnh với một loại không rõ là một lỗi

[Generic] Creating an image format with an unknown type is an error 

Tôi đang sử dụng Xcode 8.1 và Swift 3. tôi đã tìm kiếm trên toàn bộ web nhưng không có gì có vẻ giải quyết được vấn đề của tôi, xin hãy giúp đỡ!

Ở đây nó là mã của tôi:

class TabBarController: UITabBarController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { 

var isSelected: Bool = false 
var imgPicker: UIImagePickerController = UIImagePickerController() 

override func viewDidLoad() { 
    super.viewDidLoad() 
    //imgPicker = UIImagePickerController() 
    imgPicker.delegate = self 
    imgPicker.allowsEditing = false 
    imgPicker.sourceType = .photoLibrary 
} 

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 
    imgPicker.dismiss(animated: true, completion: nil) 

    if let image = info[UIImagePickerControllerOriginalImage] as? UIImage { 
     self.performSegue(withIdentifier: "toPostPicture", sender: image) 
    } 
} 

func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { 
    dismiss(animated: true, completion: nil) 
} 

func askImagePickerSource(sender: UIViewController) { 
    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera) { 
     let alert = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) 

     let cameraAction = UIAlertAction(title: "Camera", style: .default, handler: { (action: UIAlertAction) in 
      self.imgPicker.sourceType = .camera 
      self.imgPicker.mediaTypes = UIImagePickerController.availableMediaTypes(for: .camera)! 
      sender.present(self.imgPicker, animated: true, completion: nil) 
     }) 
     let photoLibraryAction = UIAlertAction(title: "Photo Library", style: .default, handler: { (action: UIAlertAction) in 
      self.imgPicker.mediaTypes = UIImagePickerController.availableMediaTypes(for: .photoLibrary)! 
      sender.present(self.imgPicker, animated: true, completion: nil) 
     }) 
     let cancelAction = UIAlertAction(title: "Cancel", style: .cancel) { (UIAlertAction) in 
      sender.dismiss(animated: true, completion: nil) 
     } 

     alert.addAction(cameraAction) 
     alert.addAction(photoLibraryAction) 
     alert.addAction(cancelAction) 

     sender.present(alert, animated: true, completion: nil) 
    } else { 
     self.imgPicker.mediaTypes = UIImagePickerController.availableMediaTypes(for: .photoLibrary)! 
     sender.present(self.imgPicker, animated: true, completion: nil) 
    } 
} 

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "toPostPicture" { 
     if let postPictureVC = segue.destination as? PostPictureVC { 
      if let image = sender as? UIImage { 
       postPictureVC.image = image 
      } 
     } 
    } 
} 

}

+0

có thể trùng lặp của [Xcode 8 - Tạo một định dạng hình ảnh với một loại không rõ là một lỗi] (https://stackoverflow.com/questions/39009889/xcode-8-creating-an- định dạng hình ảnh-với-một-không biết-loại-là-một-lỗi) –

Trả lời

0

Bạn có thể gửi .debugDescription của info tham số trong đại biểu chọn của bạn?

func imagePickerController(_ picker: UIImagePickerController, 
         didFinishPickingMediaWithInfo info: [String : Any]) { 
print(info.debugDescription) 
... 
} 
+0

Ở đây sau thông tin info.debugDescription: ["UIImagePickerControllerMediaType": public.image, "UIImagePickerControllerReferenceURL": asset-library: //asset/asset.JPG ? id = ED7AC36B-A150-4C38-BB8C-B6D696F4F2ED & ext = JPG, "UIImagePickerControllerOriginalImage": kích thước {3000, 2002} hướng 0 scale 1.000000] – ppablo

+0

nếu để image = info [UIImagePickerControllerEditedImage] như? UIImage { // Lưu hình ảnh của bạn } khác nếu để image = info [UIImagePickerControllerOriginalImage] là? UIImage { // Lưu hình ảnh của bạn } else { in ("Đã xảy ra sự cố") } – Haseeb

3

tôi phải đối mặt với cùng một vấn đề bằng cách không bổ sung đại biểu là 'tự' cho UIImagePickerController. Sau khi thêm nó, tôi có thể lấy hình ảnh được chọn từ thư viện. Nhưng ngay cả sau khi thêm đại biểu là tự và có thể truy cập vào hình ảnh (Hiển thị trên ImageView), tôi vẫn gặp lỗi tương tự. Sau khi nghiên cứu thêm về SO tôi đã biết rằng đây chỉ là một lỗi và không ảnh hưởng đến các ứng dụng trong bất kỳ cách nào.

Xem thêm "Creating an image format with an unknown type is an error Objective-C Xcode 8"

Các vấn đề liên quan