我正在使用核心数据制作食谱书。这是我第一次使用CoreData并且它到目前为止工作,但我在iPad的分割视图中使用它时遇到了一些麻烦。
这是我的对象模型: http://i621.photobucket.com/albums/tt295/Naosu_FFXI/ObjectModel.png
在我的应用程序中,步骤和成分显示在详细视图中的两个表中。当我有一个食谱时,它按预期工作。但是,无论您选择哪种配方,两个表的NSFetchedResultsControllers都会提取所有信息。所以使用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变量的值是用户点击的配方的名称。
这一直让我感到困扰,这真让我烦恼,所以任何反馈/帮助都会受到赞赏。
答案 0 :(得分:0)
以谓词格式删除%@
周围的单引号:
[NSPredicate predicateWithFormat:@"recipe.recipeName == %@", selectedName]