各大公司的OC面试题汇总 1.Objective-C可以实现多继承吗?可以实现多个接口吗?Category是什么?重写一个类的方式是用继承好还是用分类好?为什么? 2.OC使用协议实现多继承,可以遵守多个协议实现多接口。category是OC中的类别,类别是用于给一个现有类添加新方法。重写类一般采用继承的方式,分类(类别)在给以个类添加同名方法后,会造成原有类中方法的实效,而继承重写的方法,依然可以在使用父类对象调用该方法。 Objective-C是一种面向对象的编程语言,广泛应用于iOS和macOS应用开发。在面试中,面试官经常关注开发者对OC基础知识的掌握,包括类的继承、协议、Category、内存管理等核心概念。以下是对这些知识点的详细说明: 1. **Objective-C的继承与接口**:Objective-C不支持多继承,但可以通过协议(Protocol)来实现类似的功能,从而实现多个接口。协议允许类、结构体或枚举类型遵守一组方法约定,提供了多继承的效果。Category则用来给已存在的类添加方法,而不是扩展继承体系。 2. **Category与继承的区别**:继承是用来扩展类的功能,通常用于重写或增加父类的方法。Category主要用来给已有类添加额外的方法,而不涉及属性。如果要重写一个类的方法,通常使用继承,因为分类添加同名方法会导致原有的方法失效,而继承则能保持原有方法的调用。但如果只是想添加新方法,Category更合适。 3. **属性声明的retain、copy、assign**:这三个关键字用于控制内存管理。`retain`会增加对象的引用计数,确保对象在被赋值后不会被过早释放。`copy`则会创建对象的一个不可变副本,尤其适用于字符串,防止外界修改原始对象。`assign`通常用于基本数据类型,不涉及内存管理。 4. **NSMutableArray与NSArray**:NSMutableArray是可变数组,可以在任何时候添加、删除或修改元素。NSArray是不可变数组,一旦创建,其内容就不能改变。根据需求的变动性来选择使用哪种。 5. **字符串翻转**:实现"I LOVE CHINA"翻转为"CHINA LOVE I",可以通过遍历字符串,从后向前取字符并拼接。 6. **pch文件的作用**:预编译头文件(Precompiled Header),用于存放项目中常用的头文件,提高编译速度。所有源文件在编译前都会包含这个头文件,可以在此定义全局宏。 7. **解决重复编译**:为了避免头文件重复包含,可以使用条件编译指令,如`#ifndef`、`#define`和`#endif`来避免同一头文件多次编译。 8. **awakeFromNib与viewDidLoad**:`awakeFromNib`在对象从 nib 文件加载后调用,适合进行初始化设置。`viewDidLoad`在视图控制器的视图加载到内存时调用,无论视图是从 nib 加载还是代码创建。 9. **layoutSubviews的调用时机**:`layoutSubviews`在需要调整子视图布局时自动调用,例如屏幕旋转、视图大小改变、UIScrollView滚动等。 10. **访问控制(public、private、protected)**:`public`表示公开的,任何地方都能访问;`private`是私有的,只在类内部可见;`protected`是受保护的,可在类及其子类中访问。Objective-C中没有直接的`private`和`protected`关键字,但通过分类和封装可以实现类似效果。 11. **ARC(Automatic Reference Counting)**:ARC是iOS 5引入的内存管理机制,自动处理对象的引用计数,减少了手动管理内存的工作。编译器根据代码中的arc语义插入`retain`和`release`调用,简化了内存管理。 以上是对OC面试中常见问题的详细解答,涵盖了Objective-C的关键概念和实践应用。理解并熟练掌握这些知识点对于成为一名优秀的OC开发者至关重要。
























剩余9页未读,继续阅读


- 粉丝: 12
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 数据库设计基础精PPT课件.ppt
- 电子商务系统建设与运营方案模板.doc
- 考勤管理系统软件说明书需求.doc
- 基于微服务架构的基础设施设计.pdf
- 无线网络IP冲突应该如何解决?.docx
- 网站最佳推广方案.doc
- 通大公司网站建设方案.doc
- 基于PLC电子计算器课程设计.doc
- access教学计划.pdf
- 一套完整的网站运营推广方案.docx
- 网络系统管理与维护--试题.doc
- 全国计算机信息高新技术考试技能培训和鉴定工作手册.doc
- 微信小程序配套微信管理后台与用户前台系统
- 营销型企业网站诊断培训教材.pptx
- 中国电信协同通信客户服务手册.doc
- 全国高等教育自学考试《软件开发工具》第一章-.ppt


