2013-03-14 2 views
0

Я использую основные данные в приложении и в основном хотел бы знать, если кто-то имели представление о том, какой из этих 2-х процессов, будет быстрее ...основные данные, петля VS поиска

У меня есть таблицы View, которая требует соответствие записи в основных данных с рядами на данный момент я положил все основные классов данных в массиве с помощью:

NSArray *classArray = (NSArray *)[currentUser myCDClasses]; 

for(myCDClasses *class in classArray) 
{ 
    if([class class_id] == theIDINeedToMatch) 
    { 
    myCDClasses *classForThisRow = class; 
    break; 
    } 
} 

то, что я хотел бы знать, если это будет быстрее всего предикат поиска по ID мне нужно получить?

Я думаю, что обычно максимальные элементы она должна была бы для Переберите будет около 40.

+0

Быстрое перечисление - это всегда хорошая идея, она быстрее, чем даже блок-счетчики (ну, в случае, если блок словаря будет немного быстрее в зависимости от размера массива). –

ответ

0

Я сомневаюсь, что вы заметите никакой разницы на 40 пунктов. Для большого набора данных использование предиката, вероятно, происходит быстрее, поскольку поиск выполняется на уровне SQLite, и только результат загружается в память, тогда как «решение цикла» требует, чтобы все объекты, с которыми вы сравниваете, «ошибочны» "и читать из файла магазина.

Смежные вопросы