Ich habe gerade von Xcode 7 auf 8 GM aktualisiert und inmitten der Swift 3-Kompatibilitätsprobleme festgestellt, dass meine Gerätetoken nicht mehr funktionieren. Sie lesen jetzt nur noch '32BYTES'.
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
{
print(deviceToken) // Prints '32BYTES'
print(String(data: deviceToken , encoding: .utf8)) // Prints nil
}
Vor dem Update konnte ich die NSData einfach an meinen Server senden, aber jetzt fällt es mir schwer, das Token tatsächlich zu analysieren.
Was vermisse ich hier?
Bearbeiten: Ich teste gerade die Konvertierung zurück zu NSData und sehe die erwarteten Ergebnisse. Jetzt bin ich nur noch verwirrt über den neuen Datentyp.
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
einfach dasdescription
von zu druckenNSData
. Daraus ergibt sich immer noch kein String.