如何在Swift语言中定义char数组

时间:2014-06-20 15:50:20

标签: ios objective-c swift

以下是Objective-C方法中的C代码

  

char addressBuffer [100];

但是如何用Swift语言定义这个char?

我尝试这样的事情,但这不起作用:

  

var addressBuffer:CChar(100)

以下是文档https://developer.apple.com/library/prerelease/ios/documentation/swift/conceptual/buildingcocoaapps/InteractingWithCAPIs.html

3 个答案:

答案 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)