美文网首页
Copy 和 mutableCopy

Copy 和 mutableCopy

作者: sll_ | 来源:发表于2017-04-05 10:07 被阅读0次

如何使用copy功能?

一个对象可以调用copy或mutableCopy方法来创建一个副本对象。

copy:创建的时不可变副本(如NSString、NSArray、NSDictionary)。

mutableCopy:创建的可变副本(如NSMutableString、NSMutableArray、NSMutableDictionary)。

使用copy功能的前提:

copy:

需要遵守NSCopying协议,实现copyWithZone:方法.

@protocol NSCopying

- (id)copyWithZone:(NSZone *)zone;

@end

mutableCopy:

需要遵守NSMutableCopying协议,实现mutableCopyWithZone:方法

@protocol NSMutableCopying

- (id)mutableCopyWithZone:(NSZone *)zone;

@end

深复制和浅复制的区别:

深复制(深拷贝/内容拷贝):

本质:产生了新对象。

特点:

1、源对象和副本对象是不同的两个对象;

2、源对象引用计数器不变,副本对象计数器为1(因为是新产生的)。

浅复制(浅拷贝/指针拷贝):

本质:没有产生新对象。

特点:

1、源对象和副本对象是同一对象;

2、源对象(副本对象)引用计数器+1,相当于做一次retain操作。

相关文章

网友评论

      本文标题:Copy 和 mutableCopy

      本文链接:https://www.haomeiwen.com/subject/bistattx.html