数组下标不是整数错误

时间:2013-03-04 13:28:42

标签: ios objective-c xcode opengl-es-2.0 shader

只是想知道是否有人可以帮我处理以下代码:

// Get uniform locations.
GLint m_nUniforms = 0;
glUniformMatrix4fv(uniforms, 1, 0, _modelViewProjectionMatrix.m);


glGetProgramiv(_program, GL_ACTIVE_UNIFORMS, &m_nUniforms);
for(unsigned i = 0; i < m_nUniforms; i++)
{
    char *uniformName = NULL;
    GLint size;
    GLenum type;

    glGetActiveUniform(_program, i, max_length + 1, NULL, &size, &type, uniformName);
    uniforms[uniformName] = glGetUniformLocation(_program, uniformName);
}

我想为for循环的每次迭代分配带有'char * uiformName'类型的下标的制服。我收到错误“数组下标不是整数”。

如何将char用作数组下标?

谢谢

1 个答案:

答案 0 :(得分:3)

你想要的是一个字典,其中键和值都是字符串:

NSMutableDictionary *uniforms = [[NSMutableDictionary alloc] init];

for (blah)
{
    glGetActiveUniform(_program, i, max_length + 1, NULL, &size, &type, uniformName);
    char *uniform = glGetUniformLocation(_program, uniformName);
    [uniforms addObject:[NSString stringWithUTF8String:uniform]
                 forKey:[NSString stringWithUTF8String:uniformName]];
}