ios - 无法在共享扩展中从 Twitter 应用加载图像

标签 ios swift twitter share-extension

我正在实现一个共享扩展,它将图像发送到服务器进行计算。 除了我的progress bar issues ,我无法使用 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)
                    }
                }
            }
        }

我遇到的错误如下:无法将类型'NSConcreteData'(0x1a8d45700)的值转换为'NSURL'(0x1a8d36a10)并且发生在这部分代码let url = 图像数据为!网址

该项目的类型似乎是image。知道为什么在其他应用程序适用时会发生这种情况吗?

感谢您的帮助。

最佳答案

我设法使用以下代码解决了这个问题,该代码考虑了 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)
                        }

关于ios - 无法在共享扩展中从 Twitter 应用加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44767338/

相关文章:

objective-c - 调试 iOS 应用程序时如何在 Xcode 控制台中打印 unsigned char?

ios - 使用 AFNetworking 2.0 时为 "unacceptable content-type: application/rss+xml"

ios - Parse Swift - 子类化 PFObject - 设置属性导致应用程序挂起且没有错误消息

ios - 如果 iOS 和设备低于 iOS11 和 iphone 8,提示用户使用 UIAlertController?

architecture - 如何设计可扩展的类似 Twitter 的服务?

ios - 类似 Twitter 的 UITableView 设计

android - 从其他应用程序在 Facebook、Twitter 和 Google Plus 应用程序中打开页面 - Android

ios - 如何使用 UIScrollview 创建具有动态速度的拇指轮?

iPhone标签栏设计相关问题

ios - 使用 TouchID 添加仅在应用程序内使用的指纹