繁体   English   中英

Swift String to unsigned char [](CUnsignedChar)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM