2013-05-15 14 views
1

我想回調一個來自c的客觀c方法。使用本機objective-c方法進行C回調

//c 
int gameEngineCallback(int buttontype,void (*callback)(void)) 

//using above function 
gameEngineCallback(roundButton,callback); 

//this works fine but I want to call objective c native method instead of this 
static void callback(void){ 

} 
+0

你不能。 'callback'參數需要一個沒有參數和void返回類型的函數。您無法傳遞Objective-C方法。 – rmaddy

+0

thanks.ok我可以傳遞類似上面的c方法嗎?包括objective-c對象嗎?我的意思是如何通過C回調方法來控制UIbutton或webview? – Hassy31

+1

請參閱http://stackoverflow.com/questions/12193857/callback-methods-from-c-to-objective-c?rq=1 – rmaddy

回答

1

Ç回調原型你不能將目標C方法。但你可以從C回調定義重定向到你的Objective c函數。

//添加下面一行在你的伊瓦爾的公開聲明

id myclass; // if ur not Sure about ur class name or u have to redirect to ur delegate class 

or 

YourClassName *instanceof class; //(no need to create instance just declartion) 

//之前烏爾回調火災烏爾初始化定義爲UR伊娃指定值

myclass = self ; 
or 
myclass = delegate; 

//在你的C回調函數中使用上面的IVAR這樣的函數

static void callback(void) 
{ 

[myclass Your Function]; 

} 
+0

感謝您的reply.do我們有任何詭計從當前類中調用方法? – Hassy31

+0

你的C回撥當前班嗎? –

+0

是的,在viewcontroller(當前類)中有C回調。 – Hassy31