私はNSMutableArrayの便利さが好きですが、時々あなたはただ良いoleC-arrayにドロップダウンする必要があります。インターリーブされた頂点配列をOpenGLにフィードするときのように。
NSMutableArrayの内容をC配列にコピーする最速の方法は何ですか?
ええ、このビットシャッフルは非効率性をもたらすことを認識していますが、フレームレートに影響を与えることなく、このアプローチをこっそりと実行できるかどうかを確認したいと思います。
乾杯、ダグ
私はNSMutableArrayの便利さが好きですが、時々あなたはただ良いoleC-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];
}