NSMutableArray。それを単純なole C-arrayに変換する最速の方法は何ですか
-
06-07-2019 - |
質問
NSMutableArrayの便利さは気に入っていますが、良いole C-arrayにドロップダウンする必要がある場合があります。インターリーブされた頂点配列をOpenGLに供給するときのように。
NSMutableArrayの内容をC配列にコピーする最も速い方法は何ですか?
はい、このシャッフルは非効率性をもたらすことを理解していますが、フレームレートに影響を与えずにこのアプローチで忍び込むことができるかどうかを確認したいと思います。
乾杯、 ダグ
解決
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];
}
所属していません StackOverflow