2010-11-22 29 views
0

Javaでは、自分自身の長さも知っているbyte []としてバイトを渡します。 Objective Cに同等の配列がありますか?Objective-C相当のJavaバイト[]

私は確信していませんが、NSArrayはどんなタイプでも保持できるので、そのようなものの重量は重すぎます。

答えて

2

最も近いものはNSMutableDataとそのmutableBytesプロパティです。これは、あなたに長さのカウントが付けられたCスタイルの配列を与えます。わずかな複雑さは、あなたがmutableBytesによってエントリを読んで変更することができる一方で、バッファを増やしたい場合は、最後に余分なバイトを追加するのにappendBytes:length:を使う必要があるということです。

+0

は、私が必要としているのと同じように見える、ありがとう。 –

0

私はTommyが正しい答えを持っていると思いますが、プリミティブなCデータ型(この場合はchar*)を使用することもできます。物事が非常に低レベルになると、個々のバイトについて話しているときのように、より洗練されたもののいくつかを避けるほうが良いでしょう。

+0

私は同意します。最近私は、ピクセル位置を表す 'BOOL'値の大きな配列を追跡する必要があり、同じ目的のために' NSArray'や 'NSDictionary'を使うよりも2次元配列のバイト配列がかなり速いことがわかりました。 – sapi

+0

そしてNSValueでそれらをラップすることができます – uchuugaka

0

また、@ Tommyには正しい答えがあると思いますが、組み込みのストレージクラスが非常に最適化されていることも考慮する必要があります。パフォーマンスが問題になると確信している場合を除き、NSMutableArrayを使用する方が簡単で、パフォーマンスの問題があることを示した後に移動するほうが簡単です。プリミティブ値を格納する必要がある場合は、CFMutableArrayをご覧ください。

+3

NSMutableArrayはバイト値の配列を格納するのには適していないと思います。配列に入るためには、各バイトをNSValueにラップする必要があります。 NSDataまたはNSMutableDataはここで正しいです。 – JeremyP