加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – Swift问题中的NSData到字符串

发布时间:2020-12-15 01:43:49 所属栏目:百科 来源:网络整理
导读:我在swift中将NSData转换为NSString时遇到问题.我正在使用我认为正确的命令和格式:NSString(数据: DATA,编码: ENCODING)但无论我做什么,我都会以nil值结束.我正在运行最新的Xcode测试版,所以我不确定这是否相关,但我希望它是一个简单易犯的错误,我已经遇
我在swift中将NSData转换为NSString时遇到问题.我正在使用我认为正确的命令和格式:NSString(数据:< DATA>,编码:< ENCODING>)但无论我做什么,我都会以nil值结束.我正在运行最新的Xcode测试版,所以我不确定这是否相关,但我希望它是一个简单易犯的错误,我已经遇到过.

我附加了游乐场代码以及屏幕截图.

Xcode 6.3 Beta 2 Build(6D532l)游乐场代码

import Foundation

//: # NSData to String Conversion Playground
//: ### Step 1
//: The first step is to take an array of bytes and conver them into a NSData object.  The bytes are as follows:

var testBytes : [UInt8] = [0x14,0x00,0xAB,0x45,0x49,0x1F,0xEF,0x15,0xA8,0x89,0x78,0x0F,0x09,0xA9,0x07,0xB0,0x01,0x20,0x4E,0x38,0x32,0x35,0x56,0x00]

//: ### Step 2
//: Convert the byte array into an **NSData** Object

var immutableData = NSData(bytes: testBytes,length: testBytes.count)

//: ### Step 3
//: Attempt to convert the **NSData** object into a string so it can be sent around as ascii.  This for some reason seems to be failing,however.

var convertedString = NSString(data: immutableData,encoding: NSUTF8StringEncoding)

println("String = (convertedString)")

Playgound的结果

解决方法

let testBytes : [UInt8] = [0x48,0x65,0x6C,0x6F,0x57,0x72,0x64]


func bytes2String(array:[UInt8]) -> String {
    return String(data: NSData(bytes: array,length: array.count),encoding: NSUTF8StringEncoding) ?? ""
}

Xcode 8.2?Swift 3.0.2

func bytes2String(_ array: [UInt8]) -> String {
    return String(data: Data(bytes: array,count: array.count),encoding: .utf8) ?? ""
}

测试:

bytes2String(testBytes)  // "Hello World"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读