ios - 无法将类型 'UnsafeRawPointer' 的值转换为 Swift5 中的预期参数类型 'RawPointer'

标签 ios swift device

我正在尝试获取设备 token 。

  1. 首先,这个值是独一无二的吗?

    我承认它是一种独特的值(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'

我怎样才能消除这个错误?

  1. 如果您重新安装应用程序,该值是否不会改变?

最佳答案

从 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)
}

您的问题:

  1. 该值会定期更改。如果您不管理发送推送通知的服务器,则无需关心 token 。

关于ios - 无法将类型 'UnsafeRawPointer' 的值转换为 Swift5 中的预期参数类型 'RawPointer',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57928832/

相关文章:

xcode模拟器在尝试测试不同的故事情节时不断改变硬件设备模式

swift - 如何将图像中的特定颜色更改为不同的颜色

iphone - 试飞坠机报告

ios - 播放一次 UIImageView 动画并在播放后立即将其从内存中删除的最佳方法是什么?

iphone - 我应该使用 AFIncrementalStore 还是 Restkit?

ios - 在哪里快速设置委托(delegate)?

objective-c - 如何在堆栈 View 中设置容器的高度?

linux - 如何从用户空间向 alsa 注册虚拟卡?

ios - 即使应用程序被杀死,如何获取设备锁定和解锁?

iOS - 以编程方式更改 CCFile Sprite 图像