0

在我刚刚编写的应用程序中,我有一个对象关系,可以写为 BaseIngredient <<--->> 配方。

这种关系的原因是为了提高现有基础模型的性能,该模型在 BaseIngredient 和 Recipe 之间有大约 3 个表。

我之前写的谓词是

[NSPredicate predicateWithFormat:@"SUBQUERY(ingredients, $i, ANY $i.ingredientSection.recipe IN %@).@count > 0", self.recipesFilter];

它遍历了几个对象。

我把它换成了

[NSPredicate predicateWithFormat:@"ANY recipes IN %@", recipes];

而且速度要慢得多。

作为一些信息,这个谓词是 NSFetchedResultsController 的一部分,它从不同的表 NSFetchedResultsController 中传递食谱。有没有人解释为什么这会变慢以及如何快速制作?

4

1 回答 1

0

我认为您的谓词可以改进。的正确用法IN是:

[NSPredicate predicateWithFormat:@"recipes in %@", selectedRecipes];
于 2013-08-29T22:57:15.850 回答