Właśnie zaktualizowałem Xcode 7 do 8 GM i pośród problemów ze zgodnością Swift 3 zauważyłem, że moje tokeny urządzenia przestały działać. Teraz czytają tylko „32 bajty”.
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
{
print(deviceToken) // Prints '32BYTES'
print(String(data: deviceToken , encoding: .utf8)) // Prints nil
}
Przed aktualizacją mogłem po prostu wysłać NSData na mój serwer, ale teraz mam problem z analizowaniem tokena.
Czego tu brakuje?
Edycja: właśnie testuję konwersję z powrotem do NSData i widzę oczekiwane wyniki. Więc teraz jestem po prostu zdezorientowany nowym typem danych.
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
po prostu drukujedescription
zNSData
. Nadal nie otrzymujesz z tego ciągu.