-1
我有一个技术问题。 我在swift项目中集成了widevine库。 我已经与bridging header连接了objective-c库。 的问题是,该库的使用:在swift中使用widevine库
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
}
在斯威夫特我有任何想法转换客观C代码
谢谢 安德烈
____附加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])'
在Objective-C的方法的Widevine声明:
typedef WViOsApiStatus (*WViOsApiStatusCallback)(WViOsApiEvent event, NSDictionary *attributes);
WViOsApiStatus WV_Initialize(const WViOsApiStatusCallback callback, NSDictionary *settings);
我要疯了,在迅速移植。很伤心。
使用xcode 7测试版。在swift 2.0中,您可以轻松使用函数指针。 – drskur