2015-08-14 6 views
-1

У меня есть технический вопрос. Я включил широкую библиотеку в свой быстрый проект. Я связал с мостом заголовок объектной библиотеки c. Проблема заключается в том, что библиотеки использования:Используйте широкоформатную библиотеку в swift

WViOsApiStatus WV_Initialize(const WViOsApiStatusCallback callback, NSDictionary *settings); 

где WViOsApiStatusCallback является:

typedef WViOsApiStatus (*WViOsApiStatusCallback)(WViOsApiEvent event, NSDictionary *attributes); 

В Objective-C я пишу этот код в файле .m:

WViOsApiStatus WidevineCallback(WViOsApiEvent event, NSDictionary *attributes); 

@implementation WidevineHelper 

-myFunc(){ 
    WV_Initialize(WidevineCallback, configuratioWV); 
} 

WViOsApiStatus WidevineCallback(WViOsApiEvent event, NSDictionary *attributes) 
{ 

//some code 
} 

В Swift я имеют любую идею для преобразования объектно-кода c

Спасибо Andrea

____ ДОПОЛНИТЕЛЬНЫЕ INFO____

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]()) 
} 
} 

Я стараюсь это; это кажется правильным, но компилятор говорит:

/path/WidevineHelper.swift:20:20: Невозможно вызвать 'WV_Initialize' со списком аргументов типа '(обратный вызов: WViOsApiStatusCallback, параметры: [NSObject: AnyObject])'

Widevine объявление метода в Objective-C является:

typedef WViOsApiStatus (*WViOsApiStatusCallback)(WViOsApiEvent event, NSDictionary *attributes); 

WViOsApiStatus WV_Initialize(const WViOsApiStatusCallback callback, NSDictionary *settings); 

я схожу с ума с портированием на стрижа. Так грустно ..

+0

использование xcode 7 бета-версия. В swift 2.0 вы можете легко использовать указатель функций. – drskur

ответ

0

использование xcode 7 бета-версия. В swift 2.0 вы можете легко использовать указатель функций.

WV_Initialize({ (event, attr) -> WViOsApiStatus in 
    return WViOsApiStatus_OK 
}, options)