Objective-C 对象复制与归档全解析
一、对象复制相关知识与练习
1.1 实例变量赋值与复制
在某些情况下,我们可以直接对实例变量进行赋值操作,而无需进行完整的复制。这是因为复制后的卡片所有者无法影响原始卡片的名称和电子邮件成员,因为这些成员包含不可变的字符串对象。默认情况下,我们的两个实例变量是“强”变量,简单的赋值操作会创建对对象的另一个引用。
1.2 相关练习
练习 1:为 AddressBook 类实现复制方法
- 需求 :根据 NSCopying 协议为 AddressBook 类实现 copy 方法,并思考是否有必要实现 mutableCopy 方法,以及当有人使用 AddressBook 类的 book 属性的 setter 方法时会发生什么,谁应该拥有作为参数传递给 setter 的地址簿,如何解决这个问题。
- 分析 :实现 copy 方法需要考虑对象的属性复制。对于 mutableCopy 方法,需要根据 AddressBook 类的具体需求判断是否有必要。在使用 setter 方法时,需要明确对象的所有权问题,避免出现数据不一致的情况。
练习 2:修改 Rectangle 和 XYPoint 类
- 需求 :修改第 8 章定义的 Rectangle 和 XYPoint 类,使其符合 协议,为两个类添加 copyWithZone: 方法,确保 Rectangle 类使用 XYPoint 的 c
超级会员免费看
订阅专栏 解锁全文
97

被折叠的 条评论
为什么被折叠?



