Extensão de compartilhamento do iOS 8 loadItemForTypeIdentifier: opções: conclusãoHandler: o encerramento da conclusão não está em execução
Estou usando o método loadItemForTypeIdentifier: options: complementHandler: em um objeto NSItemProvider para extrair uma URL do Safari por meio de uma extensão Share no iOS 8.
No Objective-C, esse código e funciona e o bloco é executado.
[itemProvider loadItemForTypeIdentifier:(@"public.url" options:nil completionHandler:^(NSURL *url, NSError *error) {
//My code
}];
No Swift, parece muito semelhante, no entanto, o fechamento não ocorre. Além disso,itemProvider.hasItemConformingToTypeIdentifier("public.url")
retornaYES
portanto, deve haver um objeto válido para analisar o URL de dentro doitemProvider
.
itemProvider.loadItemForTypeIdentifier("public.url", options: nil, completionHandler: { (urlItem, error) in
//My code
})
A parte Info.plist NSExtension é exatamente a mesma para a versão Objective-C e Swift e tem a seguinte aparência:
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<dict>
<key>NSExtensionActivationSupportsWebURLWithMaxCount</key>
<integer>1</integer>
</dict>
<key>NSExtensionPointName</key>
<string>com.apple.share-services</string>
<key>NSExtensionPointVersion</key>
<string>1.0</string>
</dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.share-services</string>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
</dict>
O que estou fazendo errado?