2013-05-10 18 views
0

如何使用Objective C方法作爲glutDisplayFunc(和類似它的函數)的參數?我是很新的ObjC,所以我不知道完全是如何工作Objective C glutDisplayFunc與方法

在C++中,你可以傳遞一個空白,但在ObjC,我嘗試這樣做:

//... 
    glutDisplayFunc([self display]); 
    //... 

-(void) display{ 
    glutPostRedisplay(); 
} 

我以前也試過靜態方法

//... 
    glutDisplayFunc([self display]); 
    //... 

+(void) display{ 
    glutPostRedisplay(); 
} 

但我每次得到錯誤的時間「過客‘無效’不兼容類型爲void(*)(無效),以參數」。我以爲你可以通過一個虛空。

所以,我怎樣才能使這項工作(它必須是一個方法)

回答

0

在C++中,你可以通過在空白

不,你不能。

所以,我怎樣才能使這項工作(它必須是一個方法)

你不能。你感興趣的將是關閉代表,但GLUT將只取全局範圍C風格回調函數。你可以做的最好的事情就是編寫一個全局範圍包裝器,其中調用約定與C兼容,然後調用全局範圍類實例的方法。