我目前正在进行大量数据整理工作。我摄取 lloonngg NSData 字节流,然后解析该数据。解析是微不足道的。然而,当我通过不是特别优雅的簿记进行解析时,我必须模拟数据的消耗。以下是我实现的 NData 类别中的典型方法:
//获取一个小尾数 32 位数字 - (uint32_t)getInt32OffsetIncrement:(NSUInteger *)偏移量{
uint32_t unused;
NSRange myRange = NSMakeRange(*offset, sizeof(unused));
[self getBytes:&unused range:myRange];
*offset += sizeof(unused);
return CFSwapInt32LittleToHost(unused);
}
如您所见,我检索数据,然后将 NSRange“指针”前进到数据流中。当我完成后,我已经消耗了整个数据流。
我是否忽略了 NSData 上可以同时检索数据并沿数据流长度推进指针的任何方法?
干杯, 道格
最佳答案
我刚刚编写了与此非常相似的代码。我不相信有任何内置的 NSData 方法可以帮助解决这个问题。看起来您已经将其作为 NSData 类别来执行。我认为这是你能做的最好的事情,除非你想子类化并将偏移量保留在成员中。
关于iphone - NSData 表现为可消耗的数据流。可能的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1548251/