2021 iOS 笔试精华:OC特性、内存管理与ARC

需积分: 9 5 下载量 116 浏览量 更新于2024-07-09 收藏 900KB PDF 举报
本文档是一份针对iOS程序员的面试题总结,包含了2021年的常见面试问题及其答案。内容主要围绕Objective-C语言基础、编译时导入机制、类目优缺点、内存管理原则、ARC技术和iOS中的内存管理策略展开。 1. Objective-C语言基础 - OC是C语言的超集,强调面向对象编程,但仅支持单继承,与Java类似,不同于C++的多继承。 - OC不支持命名空间,而是采用类名前缀来区分不同的类。 2. 头文件导入规则 - `#include`和`#import`虽然功能相似,但`#import`避免了重复编译,确保头文件只被导入一次,提高编译效率并减少错误。 - `#import`不仅引入类,还会包含所有信息,包括成员变量和方法,而`@class`仅告知编译器类名,后续会补充类的定义。 3. 类目(Category)的优缺点 - 类目允许在不增加子类的情况下扩展现有类的行为,但不能添加实例变量,且覆盖父类方法可能导致原始方法无法调用。 4. 内存管理原则 - 在Objective-C中,使用`alloc`、`copy`或`retain`创建的对象,开发者必须负责释放,而对于其他方法创建的对象,系统会自动管理。 - 对于内存管理,ARC(自动引用计数)在iOS中起着关键作用,取代了手动管理,开发者无需显式发送`release`或`autorelease`消息,提高了代码简洁性和性能。 5. ARC技术 - ARC是iOS 5.0后引入的内存管理技术,基于引用计数,简化了内存控制。开发者不再需要显式地释放对象,编译器会自动处理这些细节。 - 相比传统的垃圾回收(GC),ARC在性能上通常更优,因为它减少了运行时检查和垃圾回收的开销。 6. iOS内存管理 - iOS开发环境主要支持两种内存管理模式:手动内存管理和ARC。Mac开发则可能同时支持这两种方式。手动内存管理要求开发者更加谨慎地管理内存分配和释放,而ARC则极大地减轻了这部分工作。 这份文档对于准备iOS面试者来说非常有价值,提供了深入理解Objective-C语言特性和iOS内存管理的关键知识点,有助于提升应聘者的理论素养和实践能力。