问题描述
我在转换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 tothe 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字节数组转换为字符串斯威夫特的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!