Расширение общего ресурса Swift не может загрузить изображение - PullRequest
0 голосов
/ 14 октября 2018

Ниже приведен код расширения общего ресурса для iOS части flutter приложения.

У меня буквально часы опыта работы с XCode, поэтому, пожалуйста, извините за ошибки, связанные с noob.Это метод viewDidLoad из моей SLComposeServiceViewController реализации

override func viewDidLoad() {
    super.viewDidLoad();

    let content = self.extensionContext!.inputItems[0] as! NSExtensionItem;
    let contentTypeImage = kUTTypeImage as String;
    let contentTypeText = kUTTypeText as String;

    for attachment in content.attachments as! [NSItemProvider] {
        if attachment.hasItemConformingToTypeIdentifier(contentTypeImage) {
            // Verify that the content type is image.
            attachment.loadItem(forTypeIdentifier: contentTypeImage, options: nil) {
                data, error in if error == nil {
                    let url = data as! NSURL
                    if let imageData = NSData(contentsOf: url as URL) {
                        let image = UIImage(data: imageData as Data)
                        // Do something with the image.
                        if(thingGoWrong) {
                            //show error message.
                            self.showErrorMessage(text: "Failed to read image.")
                            return
                        }
                        if (finalOperationSucceeded) {
                            self.extensionContext!.completeRequest(returningItems: nil, completionHandler: nil)
                        }
                    }
                } else {
                    // Display error dialog for not supported content. Though we should never receive any such thing.
                    self.showErrorMessage(text: error?.localizedDescription)
                }
            }
        }
        if attachment.hasItemConformingToTypeIdentifier(contentTypeText) {
            attachment.loadItem(forTypeIdentifier: contentTypeText, options: nil) {
                data, error in if error == nil {
                    let text = data as! String
                    // do something with the text
                    if (textOpSucceeded) {
                        self.extensionContext!.completeRequest(returningItems: nil, completionHandler: nil)
                    }
                }
            }
        }
    }
}

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

Screenshot

Примечание:

  • Тот же код работает нормально при тестировании на iOS 11.4
  • Я тестировал на iPhone 6S симулятор iOS 12.0 там, где это не удалось.

1 Ответ

0 голосов
/ 14 октября 2018

Вы пытались преобразовать данные напрямую в UIImage?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...