iOS面试深度解析:OC特性、内存管理与ARC

需积分: 9 2 下载量 92 浏览量 更新于2024-07-20 收藏 882KB PDF 举报
"iOS面试题及知识点解析" 在iOS面试中,掌握相关知识点是至关重要的。以下是一些核心问题和解答: 1. OC语言的基本特点: - Objective-C(OC)是C语言的超集,增加了面向对象编程(Object-Oriented Programming, OOP)的概念。 - OC采用单继承模式,不同于Java的单继承和C++的多重继承。 - 由于不支持命名空间,OC使用类名前缀来避免名称冲突。 2. #include与#import、#import与@class的区别: - #include和#import都用于引入头文件,但#import防止头文件被重复导入,提高编译效率。 - #import会包含类的所有信息,而@class仅告知编译器后续声明的是类名,延迟到后面再处理具体定义。 3. Category(类别)的优点和缺点: - 优点:类别允许向已有的类添加方法,无需创建子类。 - 缺点:类别不能添加实例变量。覆盖原有方法后,原始方法无法被调用。 4. 内存管理基本原则(遵循MRC,Manual Reference Counting): - 使用alloc、copy/mutableCopy或retain创建的对象,需要负责发送release或autorelease消息释放。 - 其他方式创建的对象(如init、new等),由系统负责管理内存。 5. ARC(Automatic Reference Counting)技术: - ARC是iOS5.0后引入的内存管理技术,自动进行引用计数,无需手动调用release和autorelease。 - 与GC(Garbage Collection)不同,ARC是基于引用计数,而GC是自动回收无用对象,ARC性能优于GC。 6. iOS中的垃圾回收机制: - iOS并不支持传统的垃圾回收机制,而是依赖于手动内存管理和ARC。 - 在Mac OS X开发中,垃圾回收机制是可用的,但iOS开发推荐使用ARC。 除此之外,面试中还可能涉及其他主题,如KVC(Key-Value Coding)、KVO(Key-Value Observing)、Block、GCD(Grand Central Dispatch)、NSOperationQueue、多线程管理、UI设计模式、网络编程(URLSession、AFNetworking)、数据持久化(Core Data、SQLite、plist)、设计模式等。理解并能灵活运用这些知识点将对iOS面试大有裨益。