我正在尝试用字典测试复制。如果我正确理解了我的书,当我们复制原始字典时,新字典中的对象将仅引用原始字典中的那些元素(类似于数组的浅拷贝)。在下面的示例中,我将一个字符串对象添加到字典中,然后复制字典并打印两个字典的结果。然后我更改字符串的值并再次打印两个字典。但是,结果与字符串的原始值相同。字典的最后一次打印不应该显示字符串的新值吗?
NSMutableString * phoneRef = [NSMutableString stringWithString:@"444"];
NSString * phoneKey = @"phone";
NSDictionary * myDict = [NSDictionary dictionaryWithObjectsAndKeys: phoneRef, phoneKey, nil];
NSMutableDictionary *dictCopy = [myDict mutableCopy];
NSLog(@"%@", myDict);
NSLog(@"%@", dictCopy);
phoneRef = [NSMutableString stringWithString:@"555"];
NSLog(@"%@", myDict);
NSLog(@"%@", dictCopy);