概要的测试了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);



网友评论