iphone - 请问NSMutableDictionary的objectForKey : method return copy or the object itself?

标签 iphone ios cocoa-touch nsdictionary

NSMutableDictionary 类的objectForKey: 方法是否返回对象的副本?

如果我有一个 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"]);

输出:

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

您将返回相同的指针,这意味着该对象尚未被复制。

关于iphone - 请问NSMutableDictionary的objectForKey : method return copy or the object itself?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12447070/

相关文章:

ios - setEditing 为 ON 时如何显示 UITableViewCellAccessoryCheckmark?

iPhone 核心数据示例产生异常

iphone - 生成预览后 ARC 转换错误

ios - 如何制作自定义水平表格 View ?

ios - 升级到 MacOS Catalina 10.15 后尝试从 Xcode 11.1 部署到设备时出现两个 FIPS 错误

ios - 如果目录不存在,使用 NSFileManager 返回

ios - 为什么我的 CALayers 没有动画?相反,他们只是立即接受新的值(value)观

iphone - iPhone上的自动数据备份

iPhone/iPad : Image Resolution Question

iOS Swift - CoreBluetooth 无法发送数据