我喜欢NSMutableArray的便利性,但有时您只需要将其下载到好的C数组。就像当您将交错顶点数组提供给OpenGL一样。NSMutableArray。什么是最快的方式将其转换为简单的ole C数组
将NSMutableArray的内容复制到C数组的最快方法是什么?
是的,我意识到这一点洗牌会导致效率低下,但我想看看我是否可以通过这种方法偷偷摸摸,而不会在帧速率上受到打击。
干杯, 道格
我喜欢NSMutableArray的便利性,但有时您只需要将其下载到好的C数组。就像当您将交错顶点数组提供给OpenGL一样。NSMutableArray。什么是最快的方式将其转换为简单的ole C数组
将NSMutableArray的内容复制到C数组的最快方法是什么?
是的,我意识到这一点洗牌会导致效率低下,但我想看看我是否可以通过这种方法偷偷摸摸,而不会在帧速率上受到打击。
干杯, 道格
from cocoabuilder mailing list
id *buffer = malloc(numberOf_ItemsIWant_ToFetch * sizeof(id));
[myArray getObjects:buffer range:rangeOfItems]
NSMutableArray *arrayOfThings;
Element elements[arrayOfThings.count+1];
for (int i=0;i<arrayOfThings.count;i++)
{
elements[i] = [arrayOfThings objectAtIndex:i];
}
或类似的东西。我没有看到在Apple文档中执行此操作的简单方法。
请参阅-[NSArray getObjects:]
。只需给它一个合适大小的缓冲区,NSArray就会用它的内容填充缓冲区。 NSMutableArray是NSArray的一个子类,所以它响应所有相同的方法。
int i=0;
foreach(YourClass *obj in array)
{
carray[i++] = [obj yourMethodToConvertToCType];
}
感谢所有的答案团伙。超级快。超级有用。 – dugla 2009-06-18 20:31:17