我正在尝试获取设备 token 。
首先,这个值是独一无二的吗?
我承认它是一种独特的值(value),并努力获得它。我正在按照获取设备 token 的方式看到错误。
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
let chars = UnsafePointer<CChar>((deviceToken as NSData).bytes) // get Error
var token = ""
for i in 0..<deviceToken.count {
token += String(format: "%02.2hhx", arguments: [chars[i]])
}
print("Registration succeeded!")
print("Token: ", token)
}
Error is Cannot convert value of type 'UnsafeRawPointer' to expected argument type 'RawPointer'
我怎样才能消除这个错误?
和
- 如果您重新安装应用程序,该值是否不会改变?
最佳答案
从 Swift 3 开始,您可以更简单地将 Data
转换为十六进制字符串
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
let token = deviceToken.map{ String(format: "%02x", $0) }.joined()
print("Registration succeeded!")
print("Token: ", token)
}
您的问题:
- 是
- 该值会定期更改。如果您不管理发送推送通知的服务器,则无需关心 token 。
关于ios - 无法将类型 'UnsafeRawPointer' 的值转换为 Swift5 中的预期参数类型 'RawPointer',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57928832/