How can I convert my device token (NSData) into an NSString? How can I convert my device token (NSData) into an NSString? ios ios

How can I convert my device token (NSData) into an NSString?


If anyone is looking for a way to do this in Swift:

Swift 3 introduces the Data type, with value semantics. To convert the deviceToken to a String, you can do as follows:

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {    let token = deviceToken.map { String(format: "%02.2hhx", $0) }.joined()    print(token)}

Old answer using NSData:

func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {    let tokenChars = UnsafePointer<CChar>(deviceToken.bytes)    var tokenString = ""    for i in 0..<deviceToken.length {        tokenString += String(format: "%02.2hhx", arguments: [tokenChars[i]])    }    print("tokenString: \(tokenString)")}


Someone Helped me with this.I am just passing along

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken {    const unsigned *tokenBytes = [deviceToken bytes];    NSString *hexToken = [NSString stringWithFormat:@"%08x%08x%08x%08x%08x%08x%08x%08x",                         ntohl(tokenBytes[0]), ntohl(tokenBytes[1]), ntohl(tokenBytes[2]),                         ntohl(tokenBytes[3]), ntohl(tokenBytes[4]), ntohl(tokenBytes[5]),                         ntohl(tokenBytes[6]), ntohl(tokenBytes[7])];    [[MyModel sharedModel] setApnsToken:hexToken];}


You could use this

- (NSString *)stringWithDeviceToken:(NSData *)deviceToken {    const char *data = [deviceToken bytes];    NSMutableString *token = [NSMutableString string];    for (NSUInteger i = 0; i < [deviceToken length]; i++) {        [token appendFormat:@"%02.2hhX", data[i]];    }    return [token copy];}