gpt4 book ai didi

swift - 如何将 CString 传递给 CVarArg?

转载 作者:行者123 更新时间:2023-11-28 05:35:00 25 4
gpt4 key购买 nike

更新:这个问题不再相关,因为 CString 已在 Xcode 6 beta 4 中删除。


在 C 中,我可以将 C 字符串 (const char *) 传递给采用可变参数的 C 函数。

现在我想在给定 CString 的情况下在 Swift 中做同样的事情。我知道在 Swift 中我不能直接访问 C 可变参数函数,但是我可以访问带有 va_list 的 C 函数,在 Swift 中它变成了 CVaListPointer,我可以用getVaList() 来自 CVarArg 数组,根据 this question .

我可以毫无问题地将整数 (Int) 和对象 (NSObject) 放入 CVarArg 数组中,但我做不到弄清楚如何将 CString 转换为 CVarArg

查看标准库中符合CVarArg的类型,发现有COpaquePointer,但是想不通如何获取CString 到那个。

最佳答案

以下似乎是为了将 CString 转换为 COpaquePointer 进行编译:

var myStr : CString = "foo"
var myStrPointer:CMutablePointer<CString> = &myStr
myStrPointer.withUnsafePointer { (myPtr1 : UnsafePointer<CString>) -> () in
let myOpaquePtr = COpaquePointer(myPtr1)
}

关于swift - 如何将 CString 传递给 CVarArg?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24212578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com