ChrisRockC / MyWiki

点-线-面
0 stars 0 forks source link

如何让自己的类用 copy 修饰符?如何重写带 copy 关键字的 setter? #220

Open ChrisRockC opened 6 years ago

ChrisRockC commented 6 years ago

若想令自己所写的对象具有拷贝功能,则需实现 NSCopying 协议。如果自定义的对象分为可变版本与不可变版本,那么就要同时实现 NSCopying 与 NSMutableCopying 协议。 具体步骤:

  1. 需声明该类遵从 NSCopying 协议
  2. 实现 NSCopying 协议的方法。 // 该协议只有一个方法:
    • (id)copyWithZone:(NSZone *)zone; // 注意:使用 copy 修饰符,调用的是copy方法,其实真正需要实现的是 “copyWithZone” 方法。