iOS NSArray 和 NAMutableArray 采用 strong 还是 copy 修饰?

释放双眼,带上耳机,听听看~!

深拷贝和浅拷贝

浅拷贝:复制一个指针对象,指向的还是原来对象所指向的地址,并没有对数据进行拷贝;
深拷贝:复制一个值针对象,同时将原对象所指向地址下的数据复制一份,并分配新的地址,复制的指针对象指向新数据的地址;

NSMutableArray 应该使用 strong 修饰;

因为如果采用copy返回的对象都是不可变的,采用 copy 修饰 NSMutableArray 的话,如下:

self.array = [NSMutableArray array]; //相当于 self.array = [[NSMutableArray array] copy] 返回一个不可变数组;

[self.array addObject:@”1″]; //因为 self.array 本质为不可变数组,所以会崩溃;

NSArray 应该使用 copy 修饰;

因为 retain 操作为浅拷贝,采用 strong 修饰 NSArray 的话,如下代码会导致 NSArray 的值被改变;
NSMutableArray *mutableArray = [NSMutableArray array];
self.array = mutableArray;
[mutableArray addObject:@”1110″];

人已赞赏
iOS文章

iOS-给UIView,UIImageView,UIlabel设置阴影效果

2019-10-12 17:57:11

iOS文章

iOS 去掉navigationBar的模糊效果

2019-10-12 22:09:13

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索