Jak*_*ake 2 string hex nsdata ios swift
我有一个NSData带有十六进制数据的对象,我想将其转换为 ASCII 字符串。我见过几个与我类似的问题,但它们都在 Objective-C 中和/或它们将字符串转换为十六进制数据,而不是相反。
我发现这个功能,但它不能在斯威夫特2和工作的苹果文档不解释老之间的差异stride和新的stride(它并不能解释所有步幅):
func hex2ascii (example: String) -> String
{
var chars = [Character]()
for c in example.characters
{
chars.append(c)
}
let numbers = stride(from: 0, through: chars.count, by: 2).map{ // error: 'stride(from:through:by:)' is unavailable: call the 'stride(through:by:)' method instead.
strtoul(String(chars[$0 ..< $0+2]), nil, 16)
}
var final = ""
var i = 0
while i < numbers.count {
final.append(Character(UnicodeScalar(Int(numbers[i]))))
i++
}
return final
}
Run Code Online (Sandbox Code Playgroud)
我不知道是什么stride,也不知道它有什么作用。
你如何在 Swift 2 中将十六进制转换为 ASCII?也许是 NSData 扩展...
谢谢!
尝试:
let asciiString = String(data: data, encoding: NSASCIIStringEncoding)
print(asciiString)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2705 次 |
| 最近记录: |