iOS面试宝典:浅拷贝与深拷贝、类别与继承、扩展解析

需积分: 13 19 下载量 176 浏览量 更新于2024-07-25 收藏 121KB DOC 举报
本文档汇集了iOS开发领域中常见的面试题,涵盖了Objective-C语言的基础和高级概念,对求职者和开发者具有很高的参考价值。以下是部分关键知识点: 1. **浅复制与深复制的区别**: - 浅复制(Shallow Copy):只复制对象的指针,不复制对象本身,这意味着两个变量指向同一块内存空间。若对浅复制后的对象进行修改,原对象也会受到影响。这在数据结构如NSArray、NSMutableArray时常见,它们的copy操作通常为浅复制。 - 深复制(Deep Copy):完整地复制对象及其所有属性和内存,包括对象本身,确保两个对象完全独立,互不影响。对于自定义对象,需要明确实现深复制方法,如通过`NSCopying`协议的`copyWithZone:`方法。 2. **类别(Categories)的作用及与继承的区别**: - 类别是一种在不修改原有代码基础上,为类添加新方法或属性的方式,可以避免类间耦合度过高的问题。 - 类别与继承的主要区别在于:类别只能添加方法,不能修改或删除已存在的方法,如果发生名称冲突,类别方法会覆盖原方法;而继承允许子类增加、修改或删除父类的方法,还可以增加属性。 3. **类别与类扩展(Extensions)的比较**: - 类扩展更像私有类别,它不仅可以添加方法,还能添加属性,这些方法必须实现。 - 类别虽然也可以添加属性,但其方法可选实现,不像类扩展那样强制要求。 4. **Objective-C协议(Protocols)与Java接口的区别**: - Objective-C中的协议(Protocol)有正式(Formal)和非正式(Informal)两种类型,正式协议类似于Java接口,定义了方法签名,强制实现者实现;而非正式协议则更像是设计模式的体现,提供了一种约定,虽然不是强制性实现,但如果实现了,会改变类的行为。 这些知识点展示了Objective-C编程中关于对象复制、代码组织、面向对象设计原则以及协议的运用等核心概念,是iOS开发者在面试过程中不可或缺的知识点。理解和掌握这些内容,有助于求职者更好地准备面试,也能提升实际项目中的代码质量。
2016-04-04 上传