从String到UnsafePointer <int8>的最佳转换是什么?

时间:2018-12-20 12:56:01

标签: swift foundation

要将String转换为UnsafePointer,我使用以下方法:

var tail = ("" as NSString).utf8String

但是,如果不进行NSString转换,是否有任何方法可以转换?

我在UnsafePointer方法中使用了C-library

1 个答案:

答案 0 :(得分:6)

为此有一种特殊的方法:.withCString(_:)

yourString.withCString { pointer in
    // work with the pointer
    return result
}

或者,如果您希望将其作为属性,则有.utf8CString

var tail = "".utf8CString // ContiguousArray<CChar> (aka ContiguousArray<Int8>)
// and then
tail.withUnsafeBufferPointer { pointer in
    // work with the pointer
    return result
}