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" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |