iOS 8-Freigabeerweiterung loadItemForTypeIdentifier: options: completionHandler: Abschlussabschluss wird nicht ausgeführt

Ich verwende die Methode loadItemForTypeIdentifier: options: completionHandler: für ein NSItemProvider-Objekt, um eine URL aus Safari über eine Freigabeerweiterung in iOS 8 zu extrahieren.

In Objective-C funktioniert dieser Code und und der Block wird ausgeführt.

[itemProvider loadItemForTypeIdentifier:(@"public.url" options:nil completionHandler:^(NSURL *url, NSError *error) {
    //My code
}];

In Swift sieht es sehr ähnlich aus, allerdings läuft der Verschluss nicht. Ebenfalls,itemProvider.hasItemConformingToTypeIdentifier("public.url") kehrt zurückYES Es muss also ein gültiges Objekt geben, um die URL von innen zu analysierenitemProvider.

itemProvider.loadItemForTypeIdentifier("public.url", options: nil, completionHandler: { (urlItem, error) in
    //My code
})

Der Info.plist NSExtension-Teil ist für Objective-C- und Swift-Version identisch und sieht folgendermaßen aus:

<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>

Was mache ich falsch?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage