私は現在、多くのデータラングリングを行っています。lloonngg NSDataバイトストリームを取り込み、そのデータを解析します。構文解析は簡単です。ただし、特に洗練されていない簿記を介して解析するときに、データの消費をシミュレートする必要があります。私が実装したNDataのカテゴリでの典型的なメソッドは次のようになります。
//リトルエンディアンの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のメソッドを見落としたことはありますか?
乾杯、ダグ