swift 3.0数据到字符串?

wei*_*ang 80 string swift

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {}
Run Code Online (Sandbox Code Playgroud)

我想deviceToken

但:

let str = String.init(data: deviceToken, encoding: .utf8)
Run Code Online (Sandbox Code Playgroud)

strnil

swift 3.0

我怎么才能让datastring

在Xcode 8/Swift 3.0中注册推送通知? 没有工作,答案是几个月前,我曾尝试过:

在此输入图像描述

并打印:

在此输入图像描述

小智 147

我来寻找Swift 3 Data to String问题的答案,从来没有得到一个好的答案.经过一番愚弄,我想到了这个:

var testString = "This is a test string"
var somedata = testString.data(using: String.Encoding.utf8)
var backToString = String(data: somedata!, encoding: String.Encoding.utf8) as String!
Run Code Online (Sandbox Code Playgroud)

  • 我试着回答你.它在其他函数中工作,但不能在`func application(_ application:UIApplication,didRegisterForRemoteNotificationsWithDeviceToken deviceToken:Data)`中工作.我不知道为什么? (4认同)

luh*_*iya 29

这是我的数据扩展.添加这个,你可以调用data.ToString()

import Foundation

extension Data
{
    func toString() -> String?
    {
        return String(data: self, encoding: .utf8)
    }
}
Run Code Online (Sandbox Code Playgroud)


Hog*_*mac 16

let str = deviceToken.map { String(format: "%02hhx", $0) }.joined()
Run Code Online (Sandbox Code Playgroud)


wei*_*ang 7

我找到了办法.您需要转换DataNSData:

let characterSet = CharacterSet(charactersIn: "<>")
let nsdataStr = NSData.init(data: deviceToken)
let deviceStr = nsdataStr.description.trimmingCharacters(in: characterSet).replacingOccurrences(of: " ", with: "")
print(deviceStr)
Run Code Online (Sandbox Code Playgroud)

  • 哪个characterSet是这个? (2认同)