您好,匿名用户

swift3.0 device token转换问题

0 投票

swift3.0调用注册方法
// 注册获得device Token

    UIApplication.shared.registerForRemoteNotifications()

收到回调通知
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {

    
    let device = deviceToken.description.replacingOccurrences(of: "<", with: "").replacingOccurrences(of: ">", with: "").replacingOccurrences(of: " ", with: "")
    print(device)
    print("Device Token:\(String(describing: deviceToken))")
}

然而打印的数据一直是
32bytes
Device Token:32 bytes

难道我上面的转换方式写错了吗 为什么不应该是一个正常的字符串的系列号之类
PS:OC写法
NSString *deviceTokenString2 = [[[[deviceTokendescription] stringByReplacingOccurrencesOfString:@"<"withString:@""]

                                                            stringByReplacingOccurrencesOfString:@">" withString:@""]

                                                            stringByReplacingOccurrencesOfString:@" " withString:@""];

NSLog(@"方式2:%@", deviceTokenString2);
用户头像 提问 2017年 6月12日 @ Anivia 中士 (1,186 威望)
分享到:

1个回答

0 投票

看样子,大家都没人遇到,或者太简单没人理会。
不过最后还是找到答案了,
转换方法没错,只是
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
返回的 deviceToken有点问题 不知道是苹果的问题 亦或者怎么样
不过只要补充一句
let nsdataStr = NSData.init(data: deviceToken)
重新实例化一份
然后执行
let datastr = nsdataStr.description.replacingOccurrences(of: "<", with: "").replacingOccurrences(of: ">", with: "").replacingOccurrences(of: " ", with: "")

     print("deviceToken:\(datastr)")

就能输出想要的结果了

用户头像 回复 2017年 6月12日 @ Fiora 中士 (1,187 威望)
提一个问题:

相关问题

0 投票
1 回复 308 阅读
0 投票
1 回复 218 阅读
0 投票
1 回复 128 阅读
用户头像 提问 2017年 3月15日 @ Hera 下士 (839 威望)
0 投票
0 回复 28 阅读
用户头像 提问 2017年 3月13日 @ Ryze 中士 (1,303 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

IT技术交流群 - 随意问
欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...