1

我现在正在使用 Core Data 编写食谱书。这是我第一次使用 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 变量的值是用户点击的配方的名称。

这一直把我逼到墙上,真的很困扰我,所以任何反馈/帮助将不胜感激。

4

1 回答 1

0

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

[NSPredicate predicateWithFormat:@"recipe.recipeName == %@", selectedName]
于 2012-11-29T20:06:00.860 回答