NSMutableArray里。将它转换为普通的C型阵列的最快方法是什么?

时间:2009-06-18 19:30:41

标签: iphone opengl-es nsmutablearray

我喜欢NSMutableArray的便利性,但有时你只需要下载到好的C-array阵列。就像将交错的顶点数组提供给OpenGL一样。

将NSMutableArray的内容复制到C阵列的最快方法是什么?

是的,我意识到这一点改组引入了低效率,但我想看看我是否可以通过这种方法偷偷摸摸而不会降低帧率。

干杯, 道格

4 个答案:

答案 0 :(得分:7)

from cocoabuilder mailing list

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

答案 1 :(得分:6)

-[NSArray getObjects:]。只需给它一个适当大小的缓冲区,NSArray就会用它的内容填充缓冲区。 NSMutableArray是NSArray的子​​类,因此它响应所有相同的方法。

答案 2 :(得分:1)

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

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

或类似的东西。我没有在Apple文档中看到任何简单的方法。

答案 3 :(得分:1)

int i=0;
foreach(YourClass *obj in array)
{
   carray[i++] = [obj yourMethodToConvertToCType];
}
相关问题