Creates a new string by copying and validating the null-terminated UTF-8 data referenced by the given pointer.
SDK
- Xcode 8.0+
Framework
- Swift Standard Library
Declaration
init?(validatingUTF8 cString: UnsafePointer <CChar>)
Parameters
cStringA pointer to a null-terminated UTF-8 code sequence.
Discussion
This initializer does not try to repair ill-formed UTF-8 code unit sequences. If any are found, the result of the initializer is nil.
The following example calls this initializer with pointers to the contents of two different CChar arrays—the first with well-formed UTF-8 code unit sequences and the second with an ill-formed sequence at the end.
let validUTF8: [CChar] = [67, 97, 102, -61, -87, 0]
validUTF8.withUnsafeBufferPointer { ptr in
let s = String(validatingUTF8: ptr.baseAddress!)
print(s)
}
// Prints "Optional(Café)"
let invalidUTF8: [CChar] = [67, 97, 102, -61, 0]
invalidUTF8.withUnsafeBufferPointer { ptr in
let s = String(validatingUTF8: ptr.baseAddress!)
print(s)
}
// Prints "nil"