2

我目前正在做很多数据争论。我摄取了一个 lloonngg NSData 字节流,然后解析该数据。解析是微不足道的。但是,当我通过不是特别优雅的簿记进行解析时,我必须模拟数据的消耗。以下是我实现的 NData 类别中的典型方法:

// 获取 little-endian 32 位数字 - (uint32_t)getInt32OffsetIncrement:(NSUInteger *)offset {

uint32_t unused;
NSRange myRange = NSMakeRange(*offset, sizeof(unused));

[self getBytes:&unused range:myRange];

*offset += sizeof(unused);

return CFSwapInt32LittleToHost(unused);

}

如您所见,我检索数据,然后将 NSRange “指针”推进到数据流中。完成后,我已经消耗了整个数据流。

我是否忽略了 NSData 上可以同时检索数据并沿数据流长度推进指针的任何方法?

干杯,道格

4

1 回答 1

2

我刚刚编写了与此非常相似的代码。我不相信有任何内置的 NSData 方法可以帮助解决这个问题。看起来您已经将其作为 NSData 类别进行了。我认为这是你能做的最好的事情,除非你想子类化并将偏移量保留在成员中。

于 2009-10-11T01:26:19.483 回答