Swift.String到CMutablePointer <cchar> </cchar>

时间:2014-06-06 19:12:07

标签: c swift

我已经导入并为Swift创建了一些旧的C源代码的桥接头。函数签名如下所示:

struct Message prattle_parse_message(char *line);

它的快速声明是:

func prattle_parse_message(line: CMutablePointer<CChar>) -> Message

但是,我不确定如何将Swift String(或NSString)转换为CMutablePointer<CChar>以传递给此函数。

("Test" as NSString).UTF8String会返回CString,但无法正常工作。

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:3)

这个 应该是......

var data =     inString.dataUsingEncoding(encoding, allowsLossyConversion: allow)
var ccharstr = CChar[](count:data.length, repeatedValue:CChar(0))  

data.getBytes(&ccharstr length:data.length)

ccharstr.append(CChar(0))

var message =  prattle_parse_message(&ccharstr)

无法测试最后一行,但我认为这应该可行

答案 1 :(得分:0)

这似乎有效:

prattle_parse_message(str.bridgeToObjectiveC()。UTF8字符串)