Convertir un tableau Swift CChar en une chaîne

Certaines API C, par exemple glGetShaderInfoLog, renvoient des tableaux de caractères dans des tampons. Je dois les convertir en chaînes pour les utiliser.

var value: GLint = 0 glGetShaderiv(shader, GLenum(GL_INFO_LOG_LENGTH), &value) var infoLog: GLchar[] = GLchar[](count: Int(value), repeatedValue: 0) var infoLogLength: GLsizei = 0 glGetShaderInfoLog(shader, value, &infoLogLength, &infoLog) var s: Ssortingng = NSSsortingng.ssortingngWithUTF8Ssortingng(infoLog) // Comstack Error: Cannot convert the expression's type 'NSSsortingng!' to type 'CSsortingng' 

Dans cet exemple, GLchar est mappé sur CChar AKA Int8 de type Swift, mais je ne peux pas trouver de méthode Ssortingng ou NSSsortingng qui l’initialisera.

Cela fait le tour:

 var s = NSSsortingng(bytes: infoLog, length: Int(infoLogLength), encoding: NSASCIISsortingngEncoding) 

Alternativement, voici une autre option qui comstack:

 var infoLog = UnsafePointer.alloc(Int(value)) glGetShaderInfoLog(shader, value, nil, infoLog) var infoLogSsortingng = Ssortingng.fromCSsortingng(infoLog) infoLog.dealloc(Int(value))