swift - 来自 NSData 的 CString

标签 swift

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

找不到接受所提供参数的“__conversion”的重载。

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

最佳答案

您需要先将其转换为NSString,然后您可以使用cString() 函数:

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

   let cString = cocoaString.cString()

关于swift - 来自 NSData 的 CString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24147825/

相关文章:

macos - 一个窗口中的swift cocoa(OSX)IBAction无法在独立窗口NSView中调用函数

ios - 创建 UIViewController 时什么时候使用 init()?

Swift:如何检查给定字符串的范围是否有效

ios - 以编程方式快速调用 drawRect()

ios - 关于在Swift中设置datePicker时间的问题

swift - 创建一个可从所有 View Controller 访问的变量

swift - 第一次使用 Xcode 7 时,我收到了一个额外的参数错误调用,代码如下 -

ios - 在 SwiftUI 中重新创建 twitter 的复制到剪贴板动画

swift - 如何在 Swift 中提取嵌套的 Json

c - 将 FILE* 指针从 Swift 传递给 C 函数