2017-02-27 5 views
2

私は自分のアプリの共有拡張機能を使って、ライブラリから直接画像を共有することができます。ビューコントローラとレイアウトが設定されていますが、選択したイメージをビューコントローラ内のUIImageViewに表示することには苦労しています。今のiOSカスタム共有拡張:選択した画像を読み込み

、次のように私のgetImage()は次のとおりです。

func getImage() { 
    if let inputItem = extensionContext!.inputItems.first as? NSExtensionItem { 
     if let itemProvider = inputItem.attachments?.first as? NSItemProvider { 
      itemProvider.loadItem(forTypeIdentifier: kUTTypeJPEG as String) { [unowned self] (imageData, error) in 
       if let item = imageData as? Data { 
        self.imageView.image = UIImage(data: item) 

       } 
      } 
     } 
    } 
} 

...しかし、イメージがロードされていません。私はここで間違って何をしていますか?

答えて

1

問題が見つかりました。まず、タイプ識別子の適合性チェックを行う必要がありました。

func getImage() { 
    if let inputItem = extensionContext!.inputItems.first as? NSExtensionItem { 
     if let itemProvider = inputItem.attachments?.first as? NSItemProvider { 
      // This line was missing 
      if itemProvider.hasItemConformingToTypeIdentifier(kUTTypeJPEG as String) { 
       itemProvider.loadItem(forTypeIdentifier: kUTTypeJPEG as String) { [unowned self] (imageData, error) in 
        if let item = imageData as? Data { 
         self.imageView.image = UIImage(data: item) 
        } 
       } 
      } 
     } 
    } 
} 
関連する問題