iOS custom share extension: загрузить выбранное изображение
Я работаю над расширением общего доступа для моего приложения, чтобы иметь возможность использовать его для обмена изображениями непосредственно из библиотеки. У меня есть контроллер вида и макет, но я изо всех сил пытаюсь получить выбранное изображение, чтобы показать его в UIImageView
внутри контроллера вида.
На данный момент мой 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)
}
}
}
}
}
...но изображение не загружается. Что я здесь делаю не так?
1 ответ:
Нашел проблему. Оказалось, что сначала мне нужно было проверить соответствие идентификатора типа:
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) } } } } } }