Acabei de atualizar do Xcode 7 para o 8 GM e em meio aos problemas de compatibilidade do Swift 3, percebi que os tokens do meu dispositivo pararam de funcionar. Eles agora lêem apenas '32BYTES'.
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
{
print(deviceToken) // Prints '32BYTES'
print(String(data: deviceToken , encoding: .utf8)) // Prints nil
}
Antes da atualização, eu era capaz de simplesmente enviar o NSData ao meu servidor, mas agora estou tendo dificuldade em analisar o token.
O que estou perdendo aqui?
Edit: Acabei de testar a conversão de volta para NSData e estou vendo os resultados esperados. Agora estou confuso sobre o novo tipo de dados.
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
simplesmente imprime odescription
deNSData
. Você ainda não entendeu nada disso.