Я щойно оновився з Xcode 7 на 8 GM, і серед проблем сумісності Swift 3 я помітив, що мої маркери пристроїв перестали працювати. Зараз вони читають лише "32БАЙТИ".
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
. Ви все ще не отримуєте рядок від цього.