哪个使用SELF IN或==执行更快的提取?

时间:2012-07-04 03:06:38

标签: iphone objective-c ios core-data

假设我有一个名为User的实体和一个名为Message的实体。用户有几条消息(多对多关系),一条消息只有一个作者。

现在说我想要获得此用户的所有消息。我有两个选择:

  1. predicate = [NSPredicate predicateWithFormat:@"SELF IN %@ ", user.messages];
  2. predicate = [NSPredicate predicateWithFormat:@"authorEmail == %@ ", user.email];
  3. 哪个更快,为什么?假设用户的email被编入索引。

1 个答案:

答案 0 :(得分:0)

如果您关心性能,请不要重新获取。提取始终非常昂贵,因为提取始终必须从文件系统中读取(按照惯例)。如果你已经在内存中有数据,只需使用没有NSFetchedResultsController的UITableViewController。

如果你不关心表现,那么两种方式无关紧要。