【发布时间】:2011-03-27 14:28:26
【问题描述】:
我有一个名为 Entry 的核心数据模型对象。 在这我有一个属性 IsFavorite。
我想使用 NSPredicate 来过滤我的 NSFetchedResultsController 的结果。
目前,当 fetch 执行时,我得到了 EXC_BAD_ACCESS。
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
// Edit the entity name as appropriate.
NSEntityDescription *thisEntry = [NSEntityDescription entityForName:@"Entry" inManagedObjectContext:managedObjectContext_];
[fetchRequest setEntity:thisEntry];
NSPredicate *fetchPredicate = [NSPredicate predicateWithFormat:@"Entry.isFavorite == %@", [NSNumber numberWithBool: YES]];
[fetchRequest setPredicate:predicate];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];
aFetchedResultsController.delegate = self;
NSError *error = nil;
if (![aFetchedResultsController performFetch:&error]) {
NSlog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
如果我删除在 fetchRequest 上设置谓词的行,我的代码将完美执行。
我显然不了解谓词,但在尝试找出如何对核心数据模型对象中的 BOOLEAN 值执行操作时遇到了很多麻烦。请注意,有关于如何使用字符串或 int 值执行此操作的答案,但我找不到 BOOLEAN 示例。
非常感谢!
【问题讨论】:
标签: iphone xcode nspredicate boolean