1. ホーム
  2. ios

[解決済み] デバイストークン(NSData)をNSStringに変換するにはどうしたらいいですか?

2022-04-20 14:31:40

質問

プッシュ通知を実装しています。APNS TokenをStringとして保存したいのですが、どうすればよいですか?

- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)newDeviceToken
{
    NSString *tokenString = [NSString stringWithUTF8String:[newDeviceToken bytes]]; //[[NSString alloc]initWithData:newDeviceToken encoding:NSUTF8StringEncoding];
    NSLog(@"%@", tokenString);
    NSLog(@"%@", newDeviceToken);
}

1行目のコードはnullを表示し、2行目はトークンを表示します。newDeviceToken を NSString として取得するにはどうすればよいですか?

どのように解決するのですか?

注 - iOS 13 以降の SDK でコンパイルした場合は動作しません。

これを使用します。

NSString * deviceTokenString = [[[[deviceToken description]
                         stringByReplacingOccurrencesOfString: @"<" withString: @""] 
                        stringByReplacingOccurrencesOfString: @">" withString: @""] 
                       stringByReplacingOccurrencesOfString: @" " withString: @""];
        
NSLog(@"The generated device token string is : %@",deviceTokenString);