首页 > 解决方案 > ios swift - 将设备令牌保存为打印不同值的数据格式

问题描述

我尝试将 devicetoken 保存到 userDefaults 以供以后使用。

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
print(deviceToken) // value print as 32 bytes

 let encodedData: Data = NSKeyedArchiver.archivedData(withRootObject: deviceToken)
        UserDefaults.standard.set(encodedData , forKey: "deviceToken")


 let decoded  = UserDefaults.standard.data(forKey: "deviceToken")
print(decoded) // value print as 172 bytes
}

我不知道打印值是否正确。如何验证?或者如果我的存储机制是错误的。如何保存数据以备后用?

标签: iosswiftnsuserdefaultsuserdefaultsdevicetoken

解决方案


编码DataData多余,直接保存token即可

UserDefaults.standard.set(deviceToken, forKey: "deviceToken")

你可以用

print(deviceToken as NSData)

供以后使用

有什么用?发送通知的服务器需要维护令牌,而不是客户端。


推荐阅读