Core data CoreData:基于关系的预测

Core data CoreData:基于关系的预测,core-data,nspredicate,Core Data,Nspredicate,我正在使用核心数据编写一本食谱。这是我第一次使用CoreData,到目前为止它还在工作,但是我在iPad的分割视图中使用它时遇到了一些问题 这是我的对象模型: 在我的应用程序中,步骤和成分显示在详细视图的两个表中。当我有一个食谱,它的工作预期。但是,这两个表的NSFetchedResultsController都会提取所有信息,而不管您选择的是什么菜谱。因此,使用NSPredicate似乎是最明显的选择 以下是我的NSPredicate代码片段: filteredIngredientsArra

我正在使用核心数据编写一本食谱。这是我第一次使用CoreData,到目前为止它还在工作,但是我在iPad的分割视图中使用它时遇到了一些问题

这是我的对象模型:

在我的应用程序中,步骤和成分显示在详细视图的两个表中。当我有一个食谱,它的工作预期。但是,这两个表的NSFetchedResultsController都会提取所有信息,而不管您选择的是什么菜谱。因此,使用NSPredicate似乎是最明显的选择

以下是我的NSPredicate代码片段:

filteredIngredientsArray = [[NSMutableArray alloc] init];
.... snip ....

//---------- Filtering the ingredients by name ----------
NSError *error = nil;
NSPredicate *ingredientsPredicate = [NSPredicate predicateWithFormat:@"recipe.recipeName == '%@'", selectedName];
[fetchRequest setPredicate:ingredientsPredicate];
NSLog(@"Filtering the INGREDIENTS with this: %@", selectedName);

NSArray *loadedIngredients = [_managedObjectContext executeFetchRequest:fetchRequest error:&error];
filteredIngredientsArray = [[NSMutableArray alloc] initWithArray:loadedIngredients];

[self.ingredientTable reloadData];
当我使用这个时,我的桌子不会被填满。。。。所以它确实起作用了,但不是我想要的那样。我的NSLog显示selectedName变量的值是用户点击的配方名称


这让我非常恼火,真的让我很困扰,因此任何反馈/帮助都将不胜感激。

删除谓词格式中
%@
周围的单引号:

[NSPredicate predicateWithFormat:@"recipe.recipeName == %@", selectedName]

上帝啊,我喜欢我在最简单的修复上用头撞墙的方式。。。谢谢只是一个新手问题:那么单撇号到底是做什么的呢?我应该用它们吗?@Naosuu:你可以用引号,例如,与文字字符串进行比较:
“recipe.recipeName=='apple pie'”
。引号内的格式说明符不会展开。