[英]Cannot load images from Twitter app within share extension
我正在實現一個共享擴展,它將圖像發送到服務器進行計算。 除了進度欄問題外 ,我無法使用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)
的錯誤如下: Could not cast value of type 'NSConcreteData' (0x1a8d45700) to 'NSURL' (0x1a8d36a10)
並在這部分代碼中發生, let url = imageData as! URL
let url = imageData as! 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)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.