我正在创建一个NSDictionary并添加一个键值对,如下所示
NSDictionary* dictionary = @{ @0: @"I am the value" };
并检索以下值
NSString* value = [dictionary valueForKey:@0];
应用程序崩溃这样做,我不明白原因,我给出了相同的数据类型和价值。
@ 0的数据类型是什么,我猜它是NSNumber,如果不正确我。
答案 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作为参数