核心数据,循环VS搜索

时间:2013-03-14 10:40:36

标签: ios core-data nspredicate

我在应用程序中使用核心数据,并且基本上想知道是否有人知道这两个过程中的哪一个会更快...

我有一个表视图,需要将核心数据中的条目与行匹配,此时我将所有核心数据类放入数组:

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

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

我想知道的是,如果根据我需要检索的ID来预测搜索会更快吗?

我认为通常循环的最大项目大约是40。

1 个答案:

答案 0 :(得分:0)

我怀疑你会注意到40件物品的任何差异。对于大型数据集,使用谓词可能更快,因为搜索是在SQLite级别完成的,只有结果被加载到内存中,而“循环解决方案”要求您比较的所有对象都是“出错” “并从商店文件中读取。