[英]how to parse NSDictionary into NSUserDefaults IOS7
在我的应用程序中,我想在UILabel
显示远程通知。 因此,我尝试将通知消息形式的“ Appdelegate”传递到我的情节提要中,但该方法不起作用,请告诉我如何解决此问题。
我的“ Appdelegate”代码:
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
NSString *messag = [[userInfo description] stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@"<>"]];
[[NSUserDefaults standardUserDefaults] setObject: messag forKey:@"message"];
[[NSUserDefaults standardUserDefaults]synchronize];
NSLog (@"message %@", [[NSUserDefaults standardUserDefaults] objectForKey:@"message"]);
UIStoryboard *mainstoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
personalnottypoliticalViewController *ringingVC = [mainstoryboard instantiateViewControllerWithIdentifier:@"notifymess"];
[self.window setRootViewController: ringingVC];
}
当我打印数据时,它会像:
message {
aps = {
alert = home;
badge = 3;
sound = "";
};
}
在我的视图控制器中,我已经这样使用过。
self.message.text = [[NSUserDefaults standardUserDefaults] objectForKey:@"message"];
NSLog (@"message %@", [[NSUserDefaults standardUserDefaults] objectForKey:@"message"]);
在以上数据中,我仅需要“ Alert”值,如何获取警报值并将其存储到数据中,请告诉我这是可能的以及如何实现这一目标。 我在这里待了很长时间,请不要提出一些想法来实现这一目标。
谢谢。
description
方法创建对象的字符串表示形式以进行记录,但是您不会以这种方式使用它来访问对象的内容。
从Apple文档-
userInfo词典包含aps键,其值是另一个词典。 尽管您不需要aps词典中的信息,但是可以使用以下键检索其内容:
提醒 -The值是为该警报消息的字符串或具有两个键的字典:主体和显示图。 主体键的值是包含警报消息的字符串,而显示视图键的值是布尔值。 如果show-view键的值为false,则不会显示警报的“查看”按钮。 默认设置为显示“查看”按钮,如果用户点击该按钮,则会启动该应用程序。
徽章 —一个数字,指示要从提供程序下载的数据项的数量。 该号码将显示在应用程序图标上。 如果没有badge属性,则表明应该删除当前用于标识图标的任何数字。
声音 -应用程序捆绑包中将作为警报声音播放的声音文件的名称。 如果指定“默认”,则应播放默认声音。
因此,您可以使用此答案中的代码- 如果应用程序已在运行,则如何处理推送通知?
NSDictionary *aps=(NSDictionary *)[userInfo objectForKey:@"aps"];
NSString *message;
id alert = [aps objectForKey:@"alert"];
if ([alert isKindOfClass:[NSString class]]) {
message = alert;
} else if ([alert isKindOfClass:[NSDictionary class]]) {
message = [alert objectForKey:@"body"];
}
嗨,尝试使用此代码
NSDictionary * dict = userInfo;
NSString * messag = [[[dict objectForKey:@“ message”] objectForKey:@“ aps”] objectForKey:@“ alert”];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.