Je viens de passer de Xcode 7 au 8 GM et au milieu des problèmes de compatibilité Swift 3, j'ai remarqué que mes jetons d'appareil avaient cessé de fonctionner. Ils ne lisent plus que «32 octets».
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
{
print(deviceToken) // Prints '32BYTES'
print(String(data: deviceToken , encoding: .utf8)) // Prints nil
}
Avant la mise à jour, je pouvais simplement envoyer les NSData à mon serveur, mais maintenant j'ai du mal à analyser le jeton.
Qu'est-ce que j'oublie ici?
Edit: Je viens de tester la conversion vers NSData et je vois les résultats attendus. Alors maintenant, je suis juste confus au sujet du nouveau type de données.
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
{
print(deviceToken) // Prints '32BYTES'
print(String(data: deviceToken , encoding: .utf8)) // Prints nil
let d = NSData(data: deviceToken)
print(d) // Prints my device token
}
NSData
simplement imprimer ledescription
duNSData
. Vous n'obtenez toujours pas une chaîne de cela.