【发布时间】:2015-05-24 08:52:10
【问题描述】:
我在我的 swift 项目中使用 C 第三方库,如何在 swift 中传递回调函数指针? 当我调用第三方函数“注册”时,我得到一个错误“无法调用.......”
感谢您对此问题的帮助
// file: MyClass.swift
class MyClass: Object {
init() {
typealias callbackPtr = CFunctionPointer<((CInt , UnsafePointer<Void>) -> Void)>
let selfObject = unsafeBitCast(self, UnsafePointer<Void>.self)
// call third-part function
register(callbackPtr, selfObject) //failure point is here
}
func greeting() {
println(“Hello…”)
}
}
// file: callBack.h
//
// Third-part Function
// register(void(*functionPtr)(number int, void *context) handler, void *context)
//
// Third-party callback function pointer
// typedef void (*functionPtr)(number int, void *context);
void callbackFunctionPointer(number int, void *context)
// file: callBack.m
void callbackFunctionPointer(number int, void *context) {
MyClass *myClass = (__bridge MyClass *)context;
[myClass greeting];
}
【问题讨论】:
标签: objective-c c swift callback