无法在 Swift5 中将类型 'UnsafeRawPointer' 的值转换为预期的参数类型 'RawPointer'
Cannot convert value of type 'UnsafeRawPointer' to expected argument type 'RawPointer' in Swift5
我正在尝试获取设备令牌。
首先,这个值是唯一的吗?
我承认它是一个独特的价值,并试图得到它。而我正在按照获取设备令牌的方式看到错误。
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", [=10=]) }.joined()
print("Registration succeeded!")
print("Token: ", 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", [=10=]) }.joined()
print("Registration succeeded!")
print("Token: ", token)
}
您的问题:
- 是
- 该值会定期更改。如果您不管理发送推送通知的服务器,则无需关心令牌。