Big*_*Lex 4 iphone cocoa-touch nsdictionary ios
类的objectForKey:方法是否NSMutableDictionary返回对象的副本?
如果我有一个NSMutableArray存储在里面NSMutableDictionary,我做了一些修改(比如添加一个对象)到我用objectForKey:字典方法访问的数组,那些修改对于存储在字典中的数组是否有效?
不,它不会返回副本.
NSMutableArray *array = [NSMutableArray new];
NSMutableDictionary *dict = [NSMutableDictionary new];
NSLog(@"local instance of array: %p", array);
[dict setObject: array forKey: @"key"];
NSLog(@"returned from dictionary: %p", [dict objectForKey: @"key"]);
Run Code Online (Sandbox Code Playgroud)
输出:
2012-09-16 14:06:36.879 Untitled 3[65591:707] local instance of array: 0x7f98f940a2f0
2012-09-16 14:06:36.884 Untitled 3[65591:707] returned from dictionary: 0x7f98f940a2f0
Run Code Online (Sandbox Code Playgroud)
返回相同的指针,表示该对象尚未复制.