创建一个工程,编写mian.m代码.
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//当对不可变对象进行copy,是进行的浅拷贝,仅拷贝该对象的地址
NSString *string = @"string";
NSLog(@"string = %p", string);
NSString *string2 = [string copy];
NSLog(@"string2 = %p", string2);
//当对可变对象进行copy,是进行的深拷贝,拷贝该对象的备份
NSMutableString *mutableString = [NSMutableString stringWithString:string];
NSLog(@"mutableString = %p", mutableString);
NSMutableString *string3 = [string copy];
NSLog(@"string3 = %p", string3);
//当使用mutableCopy无论对象是不是可变,都将进行深拷贝
NSMutableString *mutableStringCopy = [string mutableCopy];
NSLog(@"mutableStringCopy = %p", mutableStringCopy);
mutableStringCopy = [mutableString mutableCopy];
NSLog(@"mutableStringCopy:%p", mutableStringCopy);
}
return 0;
}