Есть ли другой (лучший) общий способ узнать, что происходит через переменную данных (NSSecureCoding)? Общий вызов декодеру?

я есть разделение-расширение для обработки различных форматов, таких как изображения.

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 (e.g. ios11 screenshot editor)
            else if let imageData = data as? UIImage {
              contentData = UIImagePNGRepresentation(imageData)
            } 

            // proceed here with contentData

          }

Теперь я наткнулся на 3 различных способа, как данные изображения предоставляются в методе loaditem как NSSecureCoding (в случае kUTTypeImage), и задаюсь вопросом, является ли это правильным способом обработки и если я пропускаю другие способы представления изображений.

Кажется, не определено, как приложения предоставляют свои данные изображения для расширения общего доступа.

Есть ли другой (лучший) общий способ узнать, что происходит через переменную данных (NSSecureCoding)? Общий вызов декодеру?

Ответы на вопрос(0)

Ваш ответ на вопрос