iOS:浅谈 深.浅拷贝与copy.strong

概要的测试了copy与mutableCopy的区别

深.浅拷贝
●copy/mutableCopy NSString

NSString *str1 = @"0123456789";
NSString *str2 = str1;
NSString *str3Copy = [str1 copy];
NSString *str4MCopy = [str1 mutableCopy];
NSMutableString *mStr5Copy = [str1 copy];
NSMutableString *mStr6MCopy = [str1 mutableCopy];

深.浅拷贝
●copy/mutableCopy NSMutableArray

NSDictionary *dic1 = [[NSDictionary alloc] initWithObjectsAndKeys:@"Jack",@"Name",@"28",@"Age",@"Man",@"Sex", nil];
NSDictionary *dic2 = [[NSDictionary alloc] initWithObjectsAndKeys:@"ZhanSan",@"Name",@"27",@"Age",@"Man",@"Sex", nil];
NSDictionary *dic3 = [[NSDictionary alloc] initWithObjectsAndKeys:@"LiLi",@"Name",@"29",@"Age",@"Woman",@"Sex", nil];  
NSMutableArray *array1 = [[NSMutableArray alloc] initWithObjects:dic1,dic2,dic3, nil];
NSArray *array2 = array1;
NSArray *array3 = [array1 copy];
NSLog(@"...array1 = %@",array1);
NSLog(@"...array2 = %@",array2);
NSLog(@"...array3 = %@",array3);

[array1 removeAllObjects];
    
NSLog(@"...array1 = %@",array1);
NSLog(@"...array2 = %@",array2);
NSLog(@"...array3 = %@",array3);
    
NSLog(@"...array1 = %p",array1);
NSLog(@"...array2 = %p",array2);
NSLog(@"...array3 = %p",array3);
iOS:浅谈 深.浅拷贝与copy.strong_第1张图片
iOS:浅谈 深.浅拷贝与copy.strong_第2张图片
iOS:浅谈 深.浅拷贝与copy.strong_第3张图片

参考文章:http://www.jianshu.com/p/e6a7cdcc705d

你可能感兴趣的:(iOS:浅谈 深.浅拷贝与copy.strong)