【发布时间】:2014-06-05 01:49:07
【问题描述】:
一些 C API,例如glGetShaderInfoLog,返回缓冲区中的字符数组。我需要将它们转换为字符串才能使用它们。
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: String = NSString.stringWithUTF8String(infoLog) // Compile Error: Cannot convert the expression's type 'NSString!' to type 'CString'
在此示例中,GLchar 映射到 Swift 类型 CChar AKA Int8,但在我的一生中,我找不到将用它初始化的 String 或 NSString 方法。
【问题讨论】:
-
如果你把它输入到 NSString 会怎么样?