NSMutableArray。それを単純なole C-arrayに変換する最速の方法は何ですか

StackOverflow https://stackoverflow.com/questions/1014725

質問

NSMutableArrayの便利さは気に入っていますが、良いole C-arrayにドロップダウンする必要がある場合があります。インターリーブされた頂点配列をOpenGLに供給するときのように。

NSMutableArrayの内容をC配列にコピーする最も速い方法は何ですか?

はい、このシャッフルは非効率性をもたらすことを理解していますが、フレームレートに影響を与えずにこのアプローチで忍び込むことができるかどうかを確認したいと思います。

乾杯、 ダグ

役に立ちましたか?

解決

cocoabuilderメーリングリスト

id *buffer = malloc(numberOf_ItemsIWant_ToFetch * sizeof(id));
[myArray getObjects:buffer range:rangeOfItems]

他のヒント

-[NSArray getObjects:] 。適切なサイズのバッファを与えるだけで、NSArrayはバッファにその内容を入れます。 NSMutableArrayはNSArrayのサブクラスであるため、すべて同じメソッドに応答します。

NSMutableArray *arrayOfThings;
Element elements[arrayOfThings.count+1];

for (int i=0;i<arrayOfThings.count;i++)
{
    elements[i] = [arrayOfThings objectAtIndex:i];
}

または同様のもの。 Appleのドキュメントには、これを行う簡単な方法はありません。

int i=0;
foreach(YourClass *obj in array)
{
   carray[i++] = [obj yourMethodToConvertToCType];
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top