当前位置: 首页 > 面试题库 >

Swift 3-设备令牌现在被解析为“ 32BYTES”

钱志强
2023-03-14
问题内容

我刚刚从Xcode 7更新为8 GM,并且在Swift 3兼容性问题中,我注意到我的设备令牌已停止工作。他们现在只读取‘32BYTES’。

    func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
{
    print(deviceToken) // Prints '32BYTES'
    print(String(data: deviceToken , encoding: .utf8)) // Prints nil
}

在更新之前,我可以简单地将NSData发送到我的服务器,但是现在我很难解析令牌。

我在这里想念什么?

编辑:我只是测试转换回NSData,我看到了预期的结果。所以现在我只是对新的数据类型感到困惑。

    func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
{
    print(deviceToken) // Prints '32BYTES'
    print(String(data: deviceToken , encoding: .utf8)) // Prints nil

    let d = NSData(data: deviceToken)
    print(d) // Prints my device token
}

问题答案:
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    let token = deviceToken.map { String(format: "%02.2hhx", $0) }.joined()
    print(token)
}


 类似资料:
  • 我试图获取一个JSON响应,并将结果存储在一个变量中。我在以前的Swift版本中使用过这个代码版本,直到Xcode8的GM版本发布。我在StackOverflow上看了几篇类似的文章:Swift 2 Parsing JSON-Cant下标类型为“anyObject”的值和Swift 3中的JSON Parsing。 然而,这里所传达的思想似乎不适用于这种情况。 如何正确解析Swift3中的JSON

  • 请注意,上面输出的第二行是我粘贴到grun中的数据,然后单击enter并单击Control+D。 在这方面的任何帮助都将非常感谢,一直在敲我的头在这一点上的键盘现在。

  • 问题内容: 更新:- 好像我必须提供返回XML的URL。这是-URL 解析xml时出现SAXParseException。我尝试解析的xml如下- 我用来解析此xml的代码如下- 我正在使用相同的代码来解析其他xml数据,并且可以正常工作。我无法理解此xml数据中的内容,这阻止了它正确地解析数据。我也在线检查了许多xml验证程序的xml。 我一定在这里想念一些明显的东西。 编辑:- 我正在尝试解析

  • 问题 你有一个字符串,想从左至右将其解析为一个令牌流。 解决方案 假如你有下面这样一个文本字符串: text = 'foo = 23 + 42 * 10' 为了令牌化字符串,你不仅需要匹配模式,还得指定模式的类型。 比如,你可能想将字符串像下面这样转换为序列对: tokens = [('NAME', 'foo'), ('EQ','='), ('NUM', '23'), ('PLUS','+'),

  • 问题内容: 我在解析简单的JSON字符串时遇到问题。我已经在JSONLint上检查了它们,它表明它们是有效的。但是当我尝试使用jQuery替代方法解析它们时,出现了以下错误: 注意:我正在使用PHP 对字符串进行编码。 问题答案: 您的数据已经是一个对象。无需解析。javascript解释器已经为您解析了它。

  • 问题内容: 我正在尝试通过Node.js服务器在Android应用中实现Firebase云消息传递,但遇到了用例。 我看到了Firebase教程,该教程使用注册令牌创建设备组以向登录同一用户的所有设备发送消息/通知,我不明白的是当使用onTokenRefresh()方法刷新一个注册令牌时会发生什么。 我将如何区分要更改的令牌,因为所有令牌都属于同一用户? 更新: 好的,所以现在我被困在另一个阻塞的