这是我的静音推送通知的用户信息。如何在objective-c中获得结果的价值?
{
aps = {
"content-available" = 1;
result = STOP;
sound = "";
};
}
答案 0 :(得分:0)
使用KVC,您可以通过一次方法调用深入嵌套字典。
[userInfo valueForKeyPath:@"aps.result"];
接受的答案使用KVC' valueForKey:
。请注意,NSDictionary
自己的方法objectForKey:
存在差异。虽然第一个只在问题中根据需要采用NSString
,但第二个采用符合NSCopying
协议(id<NSCopying>
)的任何对象。 NSString
,NSNumber
,NSDate
,...可以轻松为您自己的班级实施NSCopying
。
NSDictionary
也支持订阅。来自docs:
objectForKeyedSubscript:
返回与给定键关联的值。
<强>讨论强>
的行为相同
此方法与objectForKey:
除非你想在我的回答中做一些KVC特定的事情,你应该更喜欢objectForKey:
而实际上你可以编写紧凑的代码
id obj = userInfo[@"aps"][@"result"];
或者如果您知道对象的类(示例中为NSString
)
NSString *obj = userInfo[@"aps"][@"result"];
答案 1 :(得分:-2)
NSLog(@"%@",[[Response valueForKey:@"aps"] valueForKey:@"result"]);