NSMutableArray. ما هي اسرع وسيلة لتحويله إلى عادي أوله C-مجموعة

StackOverflow https://stackoverflow.com/questions/1014725

سؤال

وأنا أحب راحة NSMutableArray لكن في بعض الأحيان تحتاج فقط ليتراجع الى جيدة أوله C-المصفوفات. مثل عندما كنت التغذية صفائف قمة الرأس معشق إلى برنامج OpenGL.

ما هي اسرع وسيلة لنسخ محتويات NSMutableArray إلى C-المصفوفة؟

وياه، وأنا أدرك هذا الشيء خلط يقدم انعدام الكفاءة ولكن أود أن نرى ما اذا كان يمكنني التسلل من قبل مع هذا النهج دون أخذ ضربة في معدل الإطار.

وابتهاج، دوغ

هل كانت مفيدة؟

المحلول

من القائمة البريدية cocoabuilder

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

نصائح أخرى

وانظر <لأ href = "http://developer.apple.com/DOCUMENTATION/Cocoa/Reference/Foundation/Classes/NSArray_Class/Reference/Reference.html#//apple_ref/occ/instm/NSArray/getObjects:" يختلط = "نوفولو noreferrer"> -[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];
}

وأو شيئا من هذا القبيل. أنا لا أرى أي وسيلة سهلة للقيام بذلك في مستندات أبل.

int i=0;
foreach(YourClass *obj in array)
{
   carray[i++] = [obj yourMethodToConvertToCType];
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top