当我在NSData对象上调用-description时,我看到一个由NSData对象字节组成的漂亮的十六进制字符串,如下所示:
<f6e7cd28 0fc5b5d4 88f8394b af216506 bc1bba86 4d5b483d>我希望将数据的这种表示(减去lt/gt引号)放入内存中的NSString中,这样我就可以使用它了。我不喜欢调用-[NSData description],然后只修剪lt/gt引号(因为我假设这不是NSData公共接口的保证方面,将来可能会发生变化)。
将NSData对象的这种表示形式转换为NSString对象(而不是调用-description)的最简单方法是什么?
发布于 2014-11-27 21:33:05
在Swift中,您可以创建一个扩展。
extension NSData {
func toHexString() -> String {
var hexString: String = ""
let dataBytes = UnsafePointer<CUnsignedChar>(self.bytes)
for (var i: Int=0; i<self.length; ++i) {
hexString += String(format: "%02X", dataBytes[i])
}
return hexString
}
}然后,您可以简单地使用:
let keyData: NSData = NSData(bytes: [0x00, 0xFF], length: 2)
let hexString = keyData.toHexString()
println("\(hexString)") // Outputs 00FFhttps://stackoverflow.com/questions/7520615
复制相似问题