У меня есть технический вопрос. Я включил широкую библиотеку в свой быстрый проект. Я связал с мостом заголовок объектной библиотеки 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);
я схожу с ума с портированием на стрижа. Так грустно ..
использование xcode 7 бета-версия. В swift 2.0 вы можете легко использовать указатель функций. – drskur