Я только что испытал подобную проблему, используя Swift 3. (3.0.2). Я пытался преобразовать массив CChar, [CChar] в строку в Swift. Оказывается, Swift 3 имеет инициализатор строки, который примет cString.
Пример:
let a = "abc".cString(using: .utf8) // type of a is [CChar]
let b = String(cString: a!, encoding: .utf8) // type of b is String
print("a = \(a)")
print("b = \(b)")
приводит к
a = Необязательно ([97, 98, 99, 0])
b = Необязательный («abc»)
Обратите внимание, что функция cString в String приводит к необязательной. Он должен быть принудительно развернут при использовании в функции String.init, создающей b. И b также является необязательным ... что означает, что оба могут быть ноль, поэтому также следует использовать проверку ошибок.
Я нашел пример в своих модульных тестах следующим образом:
http("untypedCheckIf").get("/")
.check(
checkIf("${bool}") {
jsonPath("$..foo")
}
)