我正在编写一个Objective-C类,但是它使用了用C编写的API.这很好,因为使用Objective-C调用混合C调用几乎没有问题.
但是,其中一个API调用需要回调方法(示例):
success = CFHostSetClient(host, MyCFHostClientCallBack, &context);
Run Code Online (Sandbox Code Playgroud)
MyCFHostClientCallBack
C函数在哪里定义如下:
static void MyCFHostClientCallBack(CFHostRef host, CFHostInfoType typeInfo, const CFStreamError *error, void *info);
Run Code Online (Sandbox Code Playgroud)
我正在尝试与Swift的旧C终端应用程序进行交互.我已成功集成源代码并将标头从C桥接到Swift.该代码从Xcode 6.3 beta编译并运行.我已将终端应用程序的主要入口点重命名为:
int initialize(int argc, char **argv);
Run Code Online (Sandbox Code Playgroud)
然而,我正在努力将Swift中的参数传递给这个C函数.我的挑战是以正确的格式转换参数.Swift的典型输入看起来像:
let args = ["-c", "1.2.3.4", "-p", "8000"]
Run Code Online (Sandbox Code Playgroud)
我已经尝试搞乱"cStringUsingEncoding(NSUTF8StringEncoding)"和"withUnsafePointer",但到目前为止还没有运气.任何帮助是极大的赞赏!