如何使用Objective C方法作为glutDisplayFunc(以及类似函数)的参数?我对ObjC很新,所以我不完全知道这是如何工作的
在C ++中,你可以传入一个空白,但在ObjC中,我尝试了这个:
//...
glutDisplayFunc([self display]);
//...
-(void) display{
glutPostRedisplay();
}
我也尝试过静态方法
//...
glutDisplayFunc([self display]);
//...
+(void) display{
glutPostRedisplay();
}
但每次我收到错误“将'void'传递给参数不兼容类型为void(*)(void)”。 我以为你可以通过一个空白。
那么,我怎样才能完成这项工作(必须是一种方法)
答案 0 :(得分:0)
在C ++中,你可以传入一个空白
不,你不能。
那么,我怎样才能完成这项工作(必须是一种方法)
你不能。您感兴趣的内容将是 closure 或 delegate ,但GLUT将采用全局范围C样式回调函数 。您可以做的最好的事情是编写一个全局范围包装器,其调用约定与C兼容,然后调用全局范围类实例的方法。