我有一个接收推送通知的应用程序。 我想在应用程序菜单中的按钮附近添加带有正确值的徽章(您还记得旧的Facebook应用程序吗?)。Xcode:获取徽章值将其添加到标签
我试图从AppDelegate中的通知中获取徽章值,将其保存在NSUserDefault中以在其他视图控制器中使用它。
NSString * badgeValue = [[userInfo valueForKey:@"aps"] valueForKey:@"badge"];
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:badgeValue forKey:@"badge"];
[defaults synchronize];
的问题是,如果我尝试把值在标签的应用程序崩溃,
'NSInvalidArgumentException' 的,理由是:“ - [__ NSCFNumber isEqualToString:]:无法识别的选择发送到实例
的Xcode让我保存badgeValue在一个字符串,但是当我把字符串中,它说的标签是不正确的字符串
if ([badgeValue isKindOfClass:[NSString class]]) {
NSLog(@"it is string !!!!!!!!!!!!!!!");
// treat it as a string object
} else {
NSLog(@"it is not a string !!!!!!!!!!!!!!!");
// treat it as a number object
}
通过调试我看到巴dgeValue不是一个真正的字符串,而是__NSCFNumber,如果我尝试在一个字符串中转换它,返回值是一个奇怪的数字。 我到处搜索的方式来获取通知的徽章价值,但我能想到的唯一选择是一个PHP查询...任何想法?