来自NSData的CString

时间:2014-06-10 17:57:28

标签: swift

我正在尝试在Swift中编写一个简单的html解析器。我通过桥头导入了libxml。但现在我通过将xml文件放入CString来解决问题。方法htmlReadMemory需要CString作为第一个参数。我将xml文件加载到NSData中。传递data.bytes不起作用。我收到了错误

Could not find an overload for '__conversion' that accepts the supplied arguments.

在obj-c代码示例中,这种方式有效。为什么不在Swift?任何想法,我如何将NSData带到CString?

3 个答案:

答案 0 :(得分:2)

您需要先将其转换为NSString,然后才能使用cString()功能:

   let xmlData = NSData()
   let cocoaString = NSString(data: xmlData, encoding: NSUTF8StringEncoding)

   let cString = cocoaString.cString()

答案 1 :(得分:0)

这适用于string.bridgeToObjectiveC().UTF8String

答案 2 :(得分:0)

你可以使用......

let cString = string.cStringUsingEncoding(NSUTF8StringEncoding)