1// //NSString不可变的字符串使用copy是浅拷贝
// NSString *name1 = [[NSString alloc]initWithFormat:@"%@",@"gxm"];
// NSLog(@"%lu",name1.retainCount);
// NSString *name2 = [name1 copy];
// NSLog(@"name1=%p,name2=%p",name1,name2);
// NSLog(@"name1=%lu,name2=%lu",name1.retainCount,name2.retainCount); // 浅拷贝拷贝的是指针,深拷贝的是内容,浅拷贝实际上就是retain
//
NSMutableString可变的字符串使用copy是深拷贝 copy出来的东西都不可变的 所以不能拼接
mutablecopy出来的东西是可变的 能拼接
// NSMutableString *mutableString = [[NSMutableString alloc]initWithFormat:@"%@",@"gxm"];
// NSMutableString *result = [mutableString mutableCopy];
// [result appendString:@"nihao"];
// NSLog(@"1 %p %p",mutableString,result);
//
//
// NSArray *array1 = @[@"name1",@"name2"];
// NSArray *array2 = [array1 copy];
// NSLog(@"2 %p %p",array1,array2);
//
// NSMutableArray *mutableArray1 = [NSMutableArray arrayWithObjects:@"name1",@"name2", nil];
// //NSMutableArray *mutableArray2 = [mutableArray1 copy];
// NSMutableArray *mutableArray2 = [mutableArray1 mutableCopy];//这时候用copy和mutablecopy都是深拷贝
// NSLog(@"3 %p %p",mutableArray1,mutableArray2);
//
注意:ARC下 字符串用copy在NSString下跟retain没有区别,但是在NSMutableString下是一次深拷贝
// NSString *name1 = [[NSString alloc]initWithFormat:@"%@",@"gxm"];
// NSLog(@"%lu",name1.retainCount);
// NSString *name2 = [name1 copy];
// NSLog(@"name1=%p,name2=%p",name1,name2);
// NSLog(@"name1=%lu,name2=%lu",name1.retainCount,name2.retainCount); // 浅拷贝拷贝的是指针,深拷贝的是内容,浅拷贝实际上就是retain
//
NSMutableString可变的字符串使用copy是深拷贝 copy出来的东西都不可变的 所以不能拼接
mutablecopy出来的东西是可变的 能拼接
// NSMutableString *mutableString = [[NSMutableString alloc]initWithFormat:@"%@",@"gxm"];
// NSMutableString *result = [mutableString mutableCopy];
// [result appendString:@"nihao"];
// NSLog(@"1 %p %p",mutableString,result);
//
//
// NSArray *array1 = @[@"name1",@"name2"];
// NSArray *array2 = [array1 copy];
// NSLog(@"2 %p %p",array1,array2);
//
// NSMutableArray *mutableArray1 = [NSMutableArray arrayWithObjects:@"name1",@"name2", nil];
// //NSMutableArray *mutableArray2 = [mutableArray1 copy];
// NSMutableArray *mutableArray2 = [mutableArray1 mutableCopy];//这时候用copy和mutablecopy都是深拷贝
// NSLog(@"3 %p %p",mutableArray1,mutableArray2);
//
注意:ARC下 字符串用copy在NSString下跟retain没有区别,但是在NSMutableString下是一次深拷贝