2017-02-27 104 views
2

我正在爲我的應用程序共享擴展程序,以便能夠使用它來直接從庫共享圖像。我有一個視圖控制器和佈局設置,但我很努力讓選定的圖像顯示在視圖控制器內的UIImageViewiOS自定義共享擴展程序:加載所選圖像

現在,我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) 
        } 
       } 
      } 
     } 
    } 
}