在swift中从UInt8转换为String

时间:2016-05-04 12:44:47

标签: ios swift

我正在将关注UInt8数组转换为swift中的String并且每次都获得nil。我该怎么做?请帮帮我。

[ 201, 201, 87, 200, 204 ]
let decData = NSData(bytes: mydata, length: Int(mydata.count) )
let result1 = NSString(data: decData, encoding: NSUTF8StringEncoding)

编辑: 我正在使用InflateStream / deflateStream来压缩我的数据。 deflateStream的返回类型是UInt8。我试图将此值转换为字符串,以便我可以将其发送到服务器。

这是我的代码

    let string = "hello"
    let data: [UInt8] = Array(string.utf8)

    // compress
    var deflater = DeflateStream()
    var (deflated, err) = deflater.write(data, flush: true)
    if err != nil{
        fatalError("\(err!)")
    }
    print(" ***** deflater: \(deflated)")

    // decompress
    var inflater = InflateStream()
    var (inflated, errr) = inflater.write(deflated, flush: true)
    if errr != nil{
        fatalError("\(errr!)")
    }
    print(" ***** inflated: \(inflated)")

1 个答案:

答案 0 :(得分:4)

给定一组UInt8

let letters: [UInt8] = [201, 201, 87, 200, 204]

我们可以将其映射到Character

的数组中
let characters = letters.map { Character(UnicodeScalar($0)) }

然后我们只需调用期望String的{​​{1}}构造函数:

[Character]