Maison > Questions et réponses > le corps du texte
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);
PHP中文网2017-04-18 09:52:06
Il semble que personne ne l'ait rencontré, ou c'est trop simple et personne ne s'en soucie.
Mais j'ai finalement trouvé la réponse.
La méthode de conversion est correcte, mais
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
Il y a un problème avec le deviceToken que j'ai renvoyé. Je ne sais pas si c'est un problème Apple. Ou que diriez-vous de
mais ajoutez simplement une phrase
let nsdataStr = NSData.init(data: deviceToken)
ré-instancier une copie
puis exécutez
let datastr = nsdataStr.description.replacingOccurrences( of: "<", with: "").replacingOccurrences(of: ">", with: "").replacingOccurrences(of: " ", with: " ")
print("deviceToken:\(datastr)")
Vous pouvez afficher les résultats souhaités