当前位置:  开发笔记 > 编程语言 > 正文

混合Objective-C和C有哪些陷阱和陷阱?

如何解决《混合Objective-C和C有哪些陷阱和陷阱?》经验,为你挑选了2个好方法。

有可能过于简单化我担心的事情可能会非常复杂,在混合使用C和Objective-C时我应该注意什么?

编辑:只是为了澄清,我以前从未使用过C,我正在通过Cocoa学习Objective-C.我也在使用Chipmunk Dynamics引擎,它是C.



1> Jarret Hardi..:

我反过来说:你可能冒着过于复杂的过于复杂的风险:-)

好吧,我有点油腻.正如其他人指出的那样,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上的任何参考,玩得开心!



2> Keith Gaugha..:

你不能'混合'C和Objective-C:Objective-C是C的超集.

现在,C++和Objective-C另一方面......

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有