gpt4 book ai didi

ios - 在 swift 中对特定值拆分或分块 NSData

转载 作者:搜寻专家 更新时间:2023-10-30 22:24:45 25 4
gpt4 key购买 nike

我想弄清楚如何根据特定值“分 block ”NSData

输入数据

7E 55 33 22 7E 7E 22 AE BC 7E 7E AA AA 00 20 00 22 53 25 A3 4E 7E

输出数据

返回类型为 [NSData] 的 3 个元素的数组,其中元素是:

  • 55 33 22
  • 22 AE BC
  • AA AA 00 20 00 22 53 25 A3 4E

我在哪里

我知道我可以做类似的事情:

var ptr = UnsafePointer<UInt8>(data.bytes)
var bytes = UnsafeBufferPointer<UInt8>(start: ptr, count: data.length)

我想通过进行类似于以下的比较来迭代:

bytes[1] == UInt8(0x7E)

我想建立“范围”,但我想知道是否有更好的方法来解决这个问题?

代码 stub

private fund chunkMessage(data: NSData) -> [NSData] {
var ptr = UnsafePointer<UInt8>(data.bytes)
var bytes = UnsafeBufferPointer<UInt8>(start: ptr, count: data.length)
var ret = []

// DO SOME STUFF

return ret as! [NSData];

}

最佳答案

我遇到了类似的情况,但我只是想按特定大小对数据进行分 block ,下面是我如何让它在 swift 2.0 中工作。这假设“数据”是 NSData 类型,并且已经填充了您要拆分的信息:

    let length = data.length
let chunkSize = 1048576 // 1mb chunk sizes
var offset = 0

repeat {
// get the length of the chunk
let thisChunkSize = ((length - offset) > chunkSize) ? chunkSize : (length - offset);

// get the chunk
let chunk = data.subdataWithRange(NSMakeRange(offset, thisChunkSize))

// -----------------------------------------------
// do something with that chunk of data...
// -----------------------------------------------

// update the offset
offset += thisChunkSize;

} while (offset < length);

希望对大家有帮助

关于ios - 在 swift 中对特定值拆分或分块 NSData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29236969/

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