[英]Swift String to unsigned char [](CUnsignedChar)
您好,我正在尝试使用旧的旧式C库,该库使用缓冲区(无符号char [])来转换数据。 这里的主要问题是我找不到将String转换为CUnsignedChar然后能够将该缓冲区分配给UnsafeMutablePointer的方法。
如果要将Swift字符串转换为不可变的C字符串以传递给C函数,请尝试以下操作:
let s: String = "hello, world!"
s.nulTerminatedUTF8.withUnsafeBufferPointer { p -> Void in
puts(UnsafePointer<Int8>(p.baseAddress))
Void()
}
如果函数采用unsigned char *
则可能需要使用UnsafePointer<UInt8>
。
我先将String转换为NSData,然后将NSData转换为CUnsignedChar数组
if let data = str.dataUsingEncoding(NSUTF8StringEncoding){
var rawData = [CUnsignedChar](count: data.length,repeatedValue: 0)
data.getBytes(&rawData, length: data.length)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.