关于对象的copy方法

使用copy方法赋值,均为浅拷贝,不重新开辟内存地址,只是将对象指向同一内存地址

使用mutableCopy方法赋值,均为深拷贝,会从新开辟一块内存地址

NSArray *arr1 = @[@"123213"];

NSArray *arr2 = arr1.copy;

NSArray *arr3 = arr1.mutableCopy;

NSMutableArray *arr4 = arr1.copy;

NSMutableArray *arr5 = arr1.mutableCopy;

NSLog(@"%p",arr1);
NSLog(@"%p",arr2);
NSLog(@"%p",arr3);
NSLog(@"%p",arr4);
NSLog(@"%p",arr5);

结果:

2019-06-01 11:54:57.222852+0800 test[5917:89508] 0x600001e41ad0

2019-06-01 11:54:57.223034+0800 test[5917:89508] 0x600001e41ad0

2019-06-01 11:54:57.223458+0800 test[5917:89508] 0x60000121ad00

2019-06-01 11:54:57.223799+0800 test[5917:89508] 0x600001e41ad0

2019-06-01 11:54:57.224152+0800 test[5917:89508] 0x60000121b960

猜你喜欢

转载自blog.csdn.net/qq_31709953/article/details/99357105