刚开始在网上找到的方法如下:
(1)NSData* data;
NSString* aStr= [NSString alloc] initWithData:dataencoding:NSASCIIStringEncoding];
可是这样的值为null。
后来又找了一个方法,
(2)专门写一个分类,转换出来有值,可是确实一堆乱码。
NSData *pushToken --> NSStrin *self.apnsToken
后来居然用很简单的方法就实现了,方法如下:
self.apnsToken= [NSStringstringWithFormat:@"%@",deviceToken];
不可思议吧。
下面附上从APNS上获得的token是NSData类型,要转成NSString类型的方法:
//获取token
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken {
// NSData类型转NSString类型,将device token转换为字符串
self.apnsToken= [NSStringstringWithFormat:@"%@",deviceToken];
NSLog(@"---NSData类型token转成NSString--%@",self.apnsToken);
self.apnsToken= [[self.apnsTokensubstringWithRange:NSMakeRange(0,72)]substringWithRange:NSMakeRange(1,71)];
//将deviceToken保存在NSUserDefaults
//保存device token令牌,并且去掉空格
[USERDEFAULTsetObject:[self.apnsTokenstringByReplacingOccurrencesOfString:@" "withString:@""]forKey:APNS_DeviceToken];
[USERDEFAULTsynchronize];
NSLog(@"---存储的APNStoken--%@", [USERDEFAULTobjectForKey:APNS_DeviceToken]);
}