常见问题总结篇 一 、Objective C 方法和 C方法的混合调用

来源:互联网 发布:软件外包群 编辑:程序博客网 时间:2024/06/06 00:24
之前遇到过一个视频相关项目,很多方法都是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方法
    • 这种方法规避了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函数
示例代码:https://github.com/sunuo/Tests.git
0 0