У меня есть приложение, которое получает push-уведомления.Я хотел бы добавить значок с правильным значением рядом с кнопкой в меню приложения (вы помните старое приложение Facebook?).
Я пытаюсь получить значение значка из уведомления в 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
}
При отладке я вижу, что badgeValue - это не настоящая строка, а __NSCFNumber, и если я пытаюсь преобразовать ее в строку, возвращаемое значение будет длинным странным числом.Я всюду искал способ получить значение значка уведомления, но единственный вариант, о котором я могу подумать, это запрос php ... Есть идеи?