iOS自定义共享扩展程序:加载所选图像

iOS自定义共享扩展程序:加载所选图像

问题描述:

我正在为我的应用程序共享扩展程序,以便能够使用它来直接从库共享图像。我有一个视图控制器和布局设置,但我很努力让选定的图像显示在视图控制器内的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) 

       } 
      } 
     } 
    } 
} 

...但图像没有加载。我在这里做错了什么?

发现问题。原来我需要先做一个类型标识符一致性检查:

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) 
        } 
       } 
      } 
     } 
    } 
}