试题详情
- 简答题C和obj-c 如何混用?
-
1).obj-c的编译器处理后缀为m的文件时,可以识别obj-c和c的代码,处理mm文件可以识别obj-c,c,c++代码,但cpp文件必须只能用c/c++代码,而且cpp文件include的头文件中,也不能出现obj-c的代码,因为cpp只是cpp
2).在mm文件中混用cpp直接使用即可,所以obj-c混cpp不是问题
3).在cpp中混用obj-c其实就是使用obj-c编写的模块是我们想要的。
如果模块以类实现,那么要按照cpp class的标准写类的定义,头文件中不能出现obj-c的东西,包括#import cocoa的。实现文件中,即类的实现代码中可以使用obj-c的东西,可以import,只是后缀是mm。
如果模块以函数实现,那么头文件要按c的格式声明函数,实现文件中,c++函数内部可以用obj-c,但后缀还是mm或m。
总结:只要cpp文件和cpp include的文件中不包含obj-c的东西就可以用了,cpp混用obj-c的关键是使用接口,而不能直接使用 实现代 码,实际上cpp混用的是obj-c编译后的o文件,这个东西其实是无差别的,所以可以用。obj-c的编译器支持cpp 关注下方微信公众号,在线模考后查看
热门试题
- 内存管理的几条原则时什么?按照默认法则.
- UIView的动画效果有那些?
- 简述http和scoket通信的区别。
- 是否在一个视图控制器中嵌入两个table
- sprintf,strcpy,memcp
- 简述Objective-C的优缺点。
- 如何使用Xcode设计通用应用?
- 如何对iOS设备进行性能测试?
- 一个tableView是否可以关联两个不
- 简述代理的作用?
- 简述控件主要响应3种事件
- 什么是block?
- 在iPhone应用中如何保存数据?
- 自动释放池是什么,如何工作?
- 什么是沙盒模型?哪些操作是属于私有api
- 多线程是什么?
- 什么是NSManagedObject模型
- MVC设计模式是什么? 你还熟悉什么设计
- 在项目什么时候选择使用GCD,什么时候选
- 我们说的oc是动态运行时语言是什么意思?