可變集合類和不可變集合類的copy和mutablecopy有什么區別?如果是集合是內容復制的話,集合里面的元素也是內容復制么?

//可變集合類和不可變集合類的copy和mutablecopy有什么區別?如果是集合是內容復制的話,集合里面的元素也是內容復制么?

- (void)copyAndMutableCopy{

NSMutableArray *mutableAry = [NSMutableArray arrayWithObjects:@"a",nil];

NSArray *ary = [NSArray arrayWithObjects:@"b",nil];

id copyMutableAry = [mutableAry copy];

id copyAry = [ary copy];

id mutableArymutableCopy = [mutableAry mutableCopy];

id mutableCopyAry = [ary mutableCopy];

NSLog(@"mutableAry:%@ ,內存地址%p -- 指針地址%p",mutableAry,mutableAry,&mutableAry);

NSLog(@"ary:%@ ,內存地址%p -- 指針地址%p",ary,ary,&ary);

NSLog(@"==================這是華麗麗的分割線==================");

NSLog(@"copyMutableAry:%@ ,內存地址%p -- 指針地址%p",copyMutableAry,copyMutableAry,?MutableAry);

NSLog(@"copyAry:%@ ,內存地址%p -- 指針地址%p",copyAry,copyAry,?Ary);

NSLog(@"==================這是華麗麗的分割線==================");

NSLog(@"mutableArymutableCopy:%@ ,內存地址%p -- 指針地址%p",mutableArymutableCopy,mutableArymutableCopy,&mutableArymutableCopy);

NSLog(@"mutableCopyAry:%@ ,內存地址%p -- 指針地址%p",mutableCopyAry,mutableCopyAry,&mutableCopyAry);

}

log

2017-08-10 16:04:40.287 Test[13049:755504] mutableAry:(a) ,內存地址0x61000004ce40 -- 指針地址0x7fff54dbfa58

2017-08-10 16:04:40.287 Test[13049:755504] ary:(b) ,內存地址0x61000000ff50 -- 指針地址0x7fff54dbfa50

2017-08-10 16:04:40.288 Test[13049:755504] ==================這是華麗麗的分割線==================

2017-08-10 16:04:40.288 Test[13049:755504] copyMutableAry:(a) ,內存地址0x61000000ff60 -- 指針地址0x7fff54dbfa48

2017-08-10 16:04:40.288 Test[13049:755504] copyAry:(b) ,內存地址0x61000000ff50 -- 指針地址0x7fff54dbfa40

2017-08-10 16:04:40.288 Test[13049:755504] ==================這是華麗麗的分割線==================

2017-08-10 16:04:40.288 Test[13049:755504] mutableArymutableCopy:(a) ,內存地址0x61000004cd20 -- 指針地址0x7fff54dbfa38

2017-08-10 16:04:40.288 Test[13049:755504] mutableCopyAry:(b) ,內存地址0x61000004ce10 -- 指針地址0x7fff54dbfa30

總結:使用copy時 可變集合的指針地址以及內存地址都不相同 ?深復制 ?不可變集合的指針地址不一樣但是內存地址一樣 屬于淺復制

使用mutableCopy的時候無論是可變集合還是不可變集合的指針地址和內存地址都不同 都屬于深復制

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容