J'ai une question technique. J'ai intégré la bibliothèque widevine dans mon projet swift. J'ai lié avec l'en-tête de pontage la bibliothèque objective-c. Le problème est que l'utilisation de la bibliothèque:Utiliser la bibliothèque widevine dans swift
WViOsApiStatus WV_Initialize(const WViOsApiStatusCallback callback, NSDictionary *settings);
où WViOsApiStatusCallback
est:
typedef WViOsApiStatus (*WViOsApiStatusCallback)(WViOsApiEvent event, NSDictionary *attributes);
In-c i objectif d'écrire ce code dans le fichier .m:
WViOsApiStatus WidevineCallback(WViOsApiEvent event, NSDictionary *attributes);
@implementation WidevineHelper
-myFunc(){
WV_Initialize(WidevineCallback, configuratioWV);
}
WViOsApiStatus WidevineCallback(WViOsApiEvent event, NSDictionary *attributes)
{
//some code
}
Swift i avoir une idée de convertir le code objectif-c
Merci Andrea
de INFO____ de SUPPLEMENTAIRE
class WidevineHelper: NSObject {
typealias WViOsApiStatusCallback = (event: WViOsApiEvent, attributes: NSDictionary?) -> WViOsApiStatus
var testCallaback : WViOsApiStatusCallback = {(event: WViOsApiEvent, attributes: NSDictionary?) ->WViOsApiStatus in
}
func testfunction(){
var test = WV_Initialize(callback: testCallaback , settings: [NSObject : AnyObject]())
}
}
J'essaie cela; il semble correct, mais dit compilateur:
/path/WidevineHelper.swift:20:20: Ne peut pas invoquer 'WV_Initialize' avec une liste d'arguments de type '(rappel: WViOsApiStatusCallback, paramètres: [NSObject: ANYOBJECT])'
La déclaration de méthode Widevine en c objectif est:
typedef WViOsApiStatus (*WViOsApiStatusCallback)(WViOsApiEvent event, NSDictionary *attributes);
WViOsApiStatus WV_Initialize(const WViOsApiStatusCallback callback, NSDictionary *settings);
Je deviens fou avec le portage dans rapide. Tellement triste ..
utilisez xcode 7 beta. Dans swift 2.0, vous pouvez utiliser le pointeur de fonction facilement. – drskur