【发布时间】:2015-04-27 19:28:27
【问题描述】:
我正在编写一个需要与 C 库互操作的 Swift 程序。 这个 C 库由一组使用回调的函数组成。 我解决了如何将 Swift func 传递给这些 C 函数的问题,但是我在将 Swift 本机类型转换为适当的 C 类型时遇到了困难。
具体来说,我有这 2 个回调(签名必须是这个才能被 C 库接受):
func peer_name_handler_swift_test(p: peer_wr) -> UnsafePointer<CChar>
{
return nil;
}
func peer_ver_handler_swift_test(p: peer_wr) -> UnsafePointer<CUnsignedInt>
{
return nil;
}
好吧,尽管我努力了,我还是无法从 String Swift 类型和简单的 CUnsignedInt 数组返回正确的类型。
我想在这些回调中返回的 2 个数据是:
var BLZ_SWIFT_TEST_PEER_VER: [CUnsignedInt] = [0,0,1,0];
var BLZ_SWIFT_TEST_PEER_NAME: String = "test_swift_peer";
你能帮帮我吗?
【问题讨论】:
标签: c swift callback type-conversion