gpt4 book ai didi

swift - 如何向 NSMutableData.appendBytes 传递一个不同于零的数组索引位置

转载 作者:行者123 更新时间:2023-11-28 07:17:44 24 4
gpt4 key购买 nike

我有一个包含 ASCII 代码的 [UInt8] 数组,我想从它创建一个从 NSMutableData 传递过来的字符串

我使用 appendBytes 方法并将快速数组地址传递给它,一切正常

问题是当我需要传递一个不同于零的索引时,表达式 &arr[5] 显然是错误的

下面的示例显示了如何创建从零开始并包含 5 个字符的字符串(字符串“hello”)。

我必须如何修改代码以从位置 6 开始并获取字符串“world”?

    var arr = [UInt8](count:100, repeatedValue:0)
arr[0] = 104 // h
arr[1] = 101 // e
arr[2] = 108 // l
arr[3] = 108 // l
arr[4] = 111 // o
arr[5] = 32 // space
arr[6] = 119 // w
arr[7] = 111 // o
arr[8] = 114 // r
arr[9] = 108 // l
arr[10] = 100 // d
var data = NSMutableData()
data.appendBytes(&arr, length: 5)
let str = NSString(data: data, encoding: NSASCIIStringEncoding)
println("string from index zero = \(str)")

最佳答案

您可以将字节数组包装到 NSData 中并使用 subdataWithRange(...) 访问所需的字节,这是代码:

let readOnlyData = NSData(bytesNoCopy: &arr, length: arr.count) // notice bytesNoCopy, working with the same bytes
let subRangeData = readOnlyData.subdataWithRange(NSMakeRange(6, 5))
let str = NSString(data: subRangeData, encoding: NSASCIIStringEncoding)

关于swift - 如何向 NSMutableData.appendBytes 传递一个不同于零的数组索引位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24760185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com