如何UINT8字节数组转换为字符串斯威夫特 [英] How to convert UInt8 byte array to string in Swift

查看:267
本文介绍了如何UINT8字节数组转换为字符串斯威夫特的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在转换UINT8 Byte数组到字符串中迅速面临的问题。我已经搜查,找到一个简单的解决方案

  String.stringWithBytes(BUFF,编码:NSUTF8StringEncoding)

,但它显示错误String.type没有一个构件stringWithBytes。任何人都可以建议我一个解决方案吗?

这是我的code,其中我收到一个NSData,并转换成字节数组,然后我不得不说字节数组转换成字符串。

 让数= data.length /的sizeof(UINT8)
VAR阵列= [UINT8](计数:算,repeatedValue:0)
data.getBytes(安培;数组长度:计数*的sizeof(UINT8))
String.stringWithBytes(BUFF,编码:NSUTF8StringEncoding)


解决方案

更新雨燕2 / X code 7:

的NSString 方法 - initWithBytes:长度:编码:映射到
雨燕字符串 failable初始化的init(数据:,编码:)

 如果让海峡=字符串(数据:数据,编码:NSUTF8StringEncoding){
    打印(STR)
}其他{
    打印(不是一个合法的UTF-8序列)
}


previous答案:

字符串不具有 stringWithBytes()方法。
的NSString 有一个

 的NSString(字节数:长度:,编码:)

方法,该方法可以使用​​,但你可以直接从的NSData 创建的字符串,而不需要一个 UINT8 数组:

 如果让海峡=的NSString(数据:数据,编码:NSUTF8StringEncoding)作为?字符串{
    的println(STR)
}其他{
    的println(不是一个合法的UTF-8序列)
}

I am facing problems while converting UInt8 Byte array to string in swift. I have searched and find a simple solution

String.stringWithBytes(buff, encoding: NSUTF8StringEncoding)

but it is showing error String.type does not have a member stringWithBytes. Can anyone suggest me a solution ?

this is my code where i am getting an NSData and converted into bytes array and then i have to convert that byte array into string.

let count = data.length / sizeof(UInt8)
var array = [UInt8](count: count, repeatedValue: 0)
data.getBytes(&array, length:count * sizeof(UInt8))
String.stringWithBytes(buff, encoding: NSUTF8StringEncoding)

解决方案

Update for Swift 2/Xcode 7:

The NSString method - initWithBytes:length:encoding: is mapped to the Swift String failable initializer init?(data:, encoding:):

if let str = String(data: data, encoding: NSUTF8StringEncoding) {
    print(str)
} else {
    print("not a valid UTF-8 sequence")
}


Previous answer:

String does not have a stringWithBytes() method. NSString has a

 NSString(bytes: , length: , encoding: )

method which you could use, but you can create the string directly from NSData, without the need for an UInt8 array:

if let str = NSString(data: data, encoding: NSUTF8StringEncoding) as? String {
    println(str)
} else {
    println("not a valid UTF-8 sequence")
}

这篇关于如何UINT8字节数组转换为字符串斯威夫特的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆