Невозможно загрузить изображения из приложения Twitter в рамках общего ресурса

Я реализую расширение общего доступа, которое отправляет изображения на сервер для вычислений. Помимо проблем с индикатором выполнения, я не могу использовать изображения из приложения Twitter. Вот код, который я использую, который работает во многих других сторонних приложениях.

if let inputItem = extensionContext!.inputItems.first as? NSExtensionItem {
            if let itemProvider = inputItem.attachments?.first as? NSItemProvider {
                if itemProvider.hasItemConformingToTypeIdentifier(kUTTypeImage as String) {
                    itemProvider.loadItem(forTypeIdentifier: kUTTypeImage as String) { [unowned self] (imageData, error) in
                        let url = imageData as! URL
                        self.sendToServer(localUrl: url)
                    }
                }
            }
        }

У меня ошибка заключается в следующем: Could not cast value of type 'NSConcreteData' (0x1a8d45700) to 'NSURL' (0x1a8d36a10) и происходит для этой части кода let url = imageData as! URL,

Кажется, что предмет имеет тип image, Есть идеи, почему это происходит, пока оно работает для других приложений?

Спасибо за вашу помощь.

1 ответ

Мне удалось это исправить с помощью следующего кода, который учитывает различные способы передачи фотографии itemProvider,

itemProvider.loadItem(forTypeIdentifier: kUTTypeImage as String){ [unowned self] (data, error) in
                            let myImage: UIImage?
                            switch data {
                            case let image as UIImage:
                                myImage = image
                            case let data as Data:
                                myImage = UIImage(data: data)
                            case let url as URL:
                                let imageData = NSData(contentsOf: url.absoluteURL)
                                myImage = UIImage(data: imageData! as Data)
                            default:
                                //There may be other cases...
                                print("Unexpected data:", type(of: data))
                                myImage = nil
                            }
                            self.sendToServer(imageData: myImage!, imageName: myImageName)
                        }
Другие вопросы по тегам