在我刚刚编写的应用程序中,我有一个对象关系,可以写为 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 中传递食谱。有没有人解释为什么这会变慢以及如何快速制作?