【问题标题】:Pointers to NSMutableDictionary objects指向 NSMutableDictionary 对象的指针
【发布时间】: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”键下的当前值?

【问题讨论】:

  • 这是您要找的吗? stackoverflow.com/questions/2708168/…
  • 最后一行,你有 print outNumber 设置在 number2 之前。所以它总是给你 number1 输出
  • 像这样打印最后一行..NSLog(@"outNumber: %@",[dict objectForKey:@"number"]);
  • 我当然可以,但这不是重点。我希望 outNumber 指向的值始终对应于 objectForKey:@"number" 的当前值,而不必将其重新分配给变量 outNumber。

标签: objective-c pointers key nsmutabledictionary


【解决方案1】:

您没有打印更新的字典,所以在代码末尾添加以下 2 行:

NSNumber * outNumber2 = [dict objectForKey:@"number"];
NSLog(@"outNumber: %@",outNumber2);

希望对你有帮助!!

【讨论】:

    猜你喜欢
    • 2023-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 2014-01-02
    相关资源
    最近更新 更多