以下是Objective-C方法中的C代码
char addressBuffer [100];
但是如何用Swift语言定义这个char?
我尝试这样的事情,但这不起作用:
var addressBuffer:CChar(100)
答案 0 :(得分:10)
这是在 Swfit 中获得一个漂亮的unicode字符数组的方法:
var charArray: Array<Character> = Array(count: 100, repeatedValue: "?")
如果最初用100个问号填充你的数组。
与CChar
,例如:
var charArray: Array<CChar> = Array(count: 100, repeatedValue: 32) // 32 is the ascii space
答案 1 :(得分:6)
这个Swift代码似乎分配了一些可用作大小为100的C char数组的东西(用于C互操作需求):
var addressBuffer = [Int8](count: 100, repeatedValue: 0)
// test it
addressBuffer[0] = 65 // 'A'
addressBuffer.withUnsafePointerToElements() { (addrBuffPtr : UnsafePointer<CChar>) -> () in
// use pointer to memory
var x0 = addrBuffPtr.memory
println("The ASCII value at index 0 is \(x0)")
var myCOpaquePointer = COpaquePointer(addrBuffPtr)
// use C pointer for interoperation calls
}
答案 2 :(得分:3)
hotpaw2在 Swift 4
中的回答var addressBuffer = [Int8](repeating:0, count:100)