我喜欢 NSMutableArray 的便利性,但有时您只需要使用好的 ole C 数组即可。就像您将交错顶点数组提供给 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