Jee*_*eef 5 xcode nsdata ios swift
我在swift中将NSData转换为NSString时遇到问题.我正在使用我认为正确的命令和格式:NSString(data: <DATA>, encoding: <ENCODING>)但无论我做什么,我总是以零值结束.我正在运行最新的Xcode测试版,所以我不确定这是否相关,但我希望这是一个简单的错误,我遇到了.
我附上了游乐场代码和屏幕截图.
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, 0x01, 0x4E, 0x38, 0x32, 0x35, 0x56, 0x20, 0x20, 0x20, 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)")
Run Code Online (Sandbox Code Playgroud)

let testBytes : [UInt8] = [0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64]
func bytes2String(array:[UInt8]) -> String {
return String(data: NSData(bytes: array, length: array.count), encoding: NSUTF8StringEncoding) ?? ""
}
Run Code Online (Sandbox Code Playgroud)
Xcode 8.2•Swift 3.0.2
func bytes2String(_ array: [UInt8]) -> String {
return String(data: Data(bytes: array, count: array.count), encoding: .utf8) ?? ""
}
Run Code Online (Sandbox Code Playgroud)
测试:
bytes2String(testBytes) // "Hello World"
Run Code Online (Sandbox Code Playgroud)
使用有效的UTF8字符!
// Playground - noun: a place where people can play
import UIKit
var str = "Hello, playground"
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:
// Hello World
var testBytes : [UInt8] = [0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64]
//: ### 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)")
Run Code Online (Sandbox Code Playgroud)
你的输出将是:
"String = Optional(Hello World)"
| 归档时间: |
|
| 查看次数: |
23573 次 |
| 最近记录: |