Objective c 如何在NSDictionary中获取键的值?

Objective c 如何在NSDictionary中获取键的值?,objective-c,json,push-notification,apple-push-notifications,Objective C,Json,Push Notification,Apple Push Notifications,这是我的静默推送通知的用户信息。如何在objective-c中获得结果的价值 { aps = { "content-available" = 1; result = STOP; sound = ""; }; } 使用,您可以通过一个方法调用进入嵌套字典 [userInfo valueForKeyPath:@"aps.result"]; 接受的答案使用KVC的valueForKey:。请注意,NSDictionary自己的

这是我的静默推送通知的用户信息。如何在objective-c中获得结果的价值

{
    aps =     {
        "content-available" = 1;
        result = STOP;
        sound = "";
    };
}
使用,您可以通过一个方法调用进入嵌套字典

[userInfo valueForKeyPath:@"aps.result"];
接受的答案使用KVC的valueForKey:。请注意,NSDictionary自己的方法objectForKey存在差异:。第一个只接受问题中需要的NSString,而第二个只接受符合NSCopying协议id的任何对象。NSString、NSNumber、NSDate,。。。这样就可以很容易地为您自己的类实现NSCopying

此外,NSDictionary还支持订阅。从:

objectForKeyedSubscript:

返回与给定键关联的值

讨论 此方法的行为与objectForKey相同:

除非您想做一些特定于KVC的事情,如我的回答中所述,否则您应该更喜欢objectForKey:实际上,您可以编写紧凑的代码

id obj = userInfo[@"aps"][@"result"]; 
或者如果您知道示例中对象NSString的类

NSString *obj = userInfo[@"aps"][@"result"]; 
NSString *obj = userInfo[@"aps"][@"result"];