如何从NSDictionary获取密钥@int的值?

时间:2016-08-30 05:26:26

标签: ios objective-c

我正在创建一个NSDictionary并添加一个键值对,如下所示

  NSDictionary* dictionary = @{ @0: @"I am the value" };

并检索以下值

  NSString* value = [dictionary valueForKey:@0];

应用程序崩溃这样做,我不明白原因,我给出了相同的数据类型和价值。

@ 0的数据类型是什么,我猜它是NSNumber,如果不正确我。

2 个答案:

答案 0 :(得分:4)

是的,它是NSNumber类型,但问题出在其他地方。

您应该致电objectForKey而不是valueForKey,主要用于KVO

NSString *value = [dictionary objectForKey:@0];

或更好:

NSString *value = dictionary[@0];

答案 1 :(得分:1)

valueForKey:对于你想要达到的目标而言,这不是正确的方法。

你应该使用:

NSString* value = [dictionary objectForKey:@0];

ValueForKey用于键值编码,并期望NSString作为参数