当前位置:  开发笔记 > 运维 > 正文

Swift 2.1 [UInt8] --utf8->字符串?

如何解决《Swift2.1[UInt8]--utf8->字符串?》经验,为你挑选了1个好方法。

我知道Stack Overflow和其他地方都存在这样的问题。但是它似乎也发展了很多。

给定一个列表UInt8(基本上是一个swift字节数组),最简单/惯用的方法是将其隐式化为swift String

我对不使用NSData / NSString的方法特别感兴趣,因为如果Santa将Swift带入Linux的世界,那么无疑将没有NS库,而且我想知道如何做到这一点。迅速。



1> Leo Dabus..:

Xcode 8•Swift 3

extension Collection where Iterator.Element == UInt8 {
    var bytes: [UInt8] { return Array(self) }
    var data: Data { return Data(self) }
    var string: String? { return String(data: data, encoding: .utf8) }
}

extension String {
    var data: Data { return Data(utf8) }
}

用法:

let sentence = "Hello World"

let utf8View = sentence.utf8
let bytes = utf8View.bytes     // [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]

let data1 = sentence.data
print(data1 as NSData)         // <48656c6c 6f20576f 726c64>

let data2 = utf8View.data
let data3 = bytes.data
let string1 = utf8View.string  // "Hello World"
let string2 = bytes.string     // "Hello World"
let string3 = data1.string     // "Hello World"

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有