有可能过于简单化我担心的事情可能会非常复杂,在混合使用C和Objective-C时我应该注意什么?
编辑:只是为了澄清,我以前从未使用过C,我正在通过Cocoa学习Objective-C.我也在使用Chipmunk Dynamics引擎,它是C.
我反过来说:你可能冒着过于复杂的过于复杂的风险:-)
好吧,我有点油腻.正如其他人指出的那样,Objective-C实际上只是C语言扩展的最小集合.当您编写Objective-C代码时,您实际上正在编写C.您甚至可以访问Objective-C运行时支持的内部机制使用一些方便的C函数作为语言的一部分(不......我不建议你实际做到这一点,除非你真的知道你在做什么).
大约有一次我曾经遇到过一些轻微棘手的时刻,那就是我希望将Objective-C实例方法作为回调函数传递给C函数.比如说,我正在使用一个纯C跨平台库,它具有接受回调的功能.我可以在一个对象实例中调用该函数来处理一些数据,然后希望该C函数在完成时调用我的实例BACK,或者作为获取额外输入等的一部分(C中的常见范例).这可以通过时髦的功能包装和我见过的一些其他创造性方法来完成,如果你需要使用Google搜索"c-callback的客观c方法"或类似的东西,它会给你带来货物.
另一个建议是确保您的对象适当地管理malloc
它们为C函数使用而创建的任何手动内存.你会希望你的objective-c类在dealloc上整理那个内存,如果它确实已经完成了.
除此之外,灰尘消除C上的任何参考,玩得开心!
你不能'混合'C和Objective-C:Objective-C是C的超集.
现在,C++和Objective-C另一方面......