プッシュ通知を受け取るアプリがあります。 アプリケーションメニューのボタンの近くに正しい値のバッジを追加したいと思います(古い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をセーブするが、私はそれが言うラベルに文字列を入れたとき、私はBAことがわかり、デバッグすることで、適切な文字列
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クエリです。