拷贝对象
您通过将 copy
消息发送给对象,以制作对象的副本。
NSArray *myArray = [yourArray copy]; |
要拷贝,接收对象的类必须遵守 NSCopying
协议。如果想要对象可供拷贝,必须采用并实施此协议的 copy
方法。
有时,当您想要确保对象的状态在使用时不会更改,会拷贝从程序的其他地方获取的对象。
拷贝行为是特定于某一个类的,具体取决于实例的特定性质。大多数类实现深拷贝,即复制所有实例变量和属性;部分类(如集类)实现浅拷贝,即仅复制对这些实例变量和属性的引用。
具有可变变体和不可变变体的类也声明 mutableCopy
方法,来创建对象的可变副本。例如,如果在 NSString
对象上调用 mutableCopy
,您会获得 NSMutableString
的实例。