2

私は現在、多くのデータラングリングを行っています。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のメソッドを見落としたことはありますか?

乾杯、ダグ

4

1 に答える 1

2

これに非常によく似たコードを書いたところです。これを支援する組み込みのNSDataメソッドはないと思います。すでにNSDataカテゴリとしてこれを行っているようです。サブクラス化してメンバーのオフセットを維持したい場合を除いて、これが最善の方法だと思います。

于 2009-10-11T01:26:19.483 に答える