ios快速共享扩展:处理图像的最佳方式是什么?

我有一个共享扩展处理不同types的格式,如图像。

for attachment in content.attachments as! [NSItemProvider] { if attachment.hasItemConformingToTypeIdentifier(kUTTypeImage as String) { attachment.loadItem(forTypeIdentifier: kUTTypeImage as String, options: nil) { data, error in if error == nil { var contentData: Data? = nil //data could be raw Data if let data = data as? Data { contentData = data //data could be an URL } else if let url = data as? URL { contentData = try? Data(contentsOf: url) } //data could be an UIImage object (eg ios11 screenshot editor) else if let imageData = data as? UIImage { contentData = UIImagePNGRepresentation(imageData) } // proceed here with contentData } 

我现在遇到了3种不同的方式如何在loaditem方法中提供图像数据作为NSSecureCoding(在kUTTypeImage的情况下),并想知道这是否正确的方式来处理它,如果我错过了其他方式如何表示图像。

它似乎没有定义应用程序如何提供他们的图像数据共享扩展。

有没有另一种(更好的)通用的方式来了解什么是通过数据variables(NSSecureCoding)? 通用调用解码器?