2

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

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

是的,我意识到这种混洗会导致效率低下,但我想看看我是否可以在不影响帧速率的情况下通过这种方法偷偷摸摸。

干杯,道格

4

4 回答 4

7

来自 Cocoabuilder 邮件列表

id *buffer = malloc(numberOf_ItemsIWant_ToFetch * sizeof(id));
[myArray getObjects:buffer range:rangeOfItems]
于 2009-06-18T20:04:59.093 回答
6

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

于 2009-06-18T19:42:21.290 回答
1
NSMutableArray *arrayOfThings;
Element elements[arrayOfThings.count+1];

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

或类似的东西。我在 Apple 文档中看不到任何简单的方法来做到这一点。

于 2009-06-18T19:37:50.833 回答
1
int i=0;
foreach(YourClass *obj in array)
{
   carray[i++] = [obj yourMethodToConvertToCType];
}
于 2009-06-18T19:43:09.073 回答