【发布时间】:2017-11-13 10:32:48
【问题描述】:
我有以下示例代码:
NSNumber * number1 = @231;
NSNumber * number2 = @322;
NSLog(@"number1: %@", number1);
NSLog(@"number2: %@", number2);
NSMutableDictionary* dict = [NSMutableDictionary new];
[dict setObject:number1 forKey:@"number"];
NSNumber * outNumber = [dict objectForKey:@"number"];
NSLog(@"outNumber: %@",outNumber);
[dict setObject:number2 forKey:@"number"];
NSLog(@"outNumber: %@",outNumber);
更新字典中“number”键下的值后,outNumber 对象仍指向前一个值 (231)。
Objective-C 中有没有办法让 outNumber 对象始终指向字典中“number”键下的当前值?
【问题讨论】:
-
最后一行,你有 print outNumber 设置在 number2 之前。所以它总是给你 number1 输出
-
像这样打印最后一行..
NSLog(@"outNumber: %@",[dict objectForKey:@"number"]); -
我当然可以,但这不是重点。我希望 outNumber 指向的值始终对应于 objectForKey:@"number" 的当前值,而不必将其重新分配给变量 outNumber。
标签: objective-c pointers key nsmutabledictionary