head_hexagonはにらぼ☆てっくtale_hexagon

iOS10に対応した 番外編

Posted by nagashima on 2017/01/22 under Development | Be the First to Comment


こんにちは、nagashimaです。
swift2.3では問題ありませんでしたが、swift3ではデバイストークンの取得方法が変わり以前までの方法では取得できなくなりました。今回は次回以降やるであろうそちらをメモとして残します。

以前まではregisterForRemoteNotifications()を呼ぶとトークン取得成功時に

func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData){}

がコールバックされ、deviceToken.descriptionからデバイストークンを取得していたと思います。

swift3からはdeviceTokenの型がDataに変更され以下が呼ばれます。

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data){}

Dataからトークンを取得するのに幾つか方法はあるみたいですが、

let token = deviceToken.map { String(format: "%.2hhx", $0) }.joined();

でDataからトークンを取得できます。

コメントを残す