Я только что обновился с Xcode 7 до 8 GM и среди проблем с совместимостью Swift 3 заметил, что токены моих устройств перестали работать. Теперь они читают только 32BYTES.
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
{
print(deviceToken) // Prints '32BYTES'
print(String(data: deviceToken , encoding: .utf8)) // Prints nil
}
До обновления я мог просто отправить NSData на свой сервер, но теперь у меня возникли проблемы с фактическим анализом токена.
Что мне здесь не хватает?
Изменить: я просто тестирую преобразование обратно в NSData и вижу ожидаемые результаты. Так что теперь я просто запутался в новом типе данных.
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
просто печатаетdescription
изNSData
. Вы по-прежнему не получаете ни строчки из этого.