之前遇到过一个视频相关项目,很多方法都是C语言写的,但是在通知界面更新数据的时候又会用到OC的方法
在stackoverflow上找到了调用方法 http://stackoverflow.com/questions/1280017/how-to-call-an-objective-c-method-from-a-c-method
现在把它写出来分享给大家:
混合调用的三种情况:
- 在OC方法中调用C方法
-
- 从OC中调用C不需要做任何特殊处理
- 从OC中调用C不需要做任何特殊处理
- 在OC方法中以C语言的形式调用OC方法
-
- 这种方法规避了OC方法的动态绑定
- 在一个方法需要被多次执行时,常用此种方式来提高效率
- runtime programing guide:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008048
- 在C方法中调用OC方法
-
- 在c方法中无法访问OC对象
- 把OC对象以参数或全局变量的形式传递给C方法
- 通过OC对象来调用OC函数