每次从数据库中获取对象时,我都会获得所有对象。现在,我必须在表视图中仅获取并显示存储在数据库中的一些对象。
为此,我想在我的实体中添加一个新属性,一个BOOL属性,这样我就只能获取具有此属性值等于YES或NO的对象,具体取决于情况。
有可能做这样的事吗?
我发现-setPropertiesToFetch:
类的NSFetchRequest
方法很有用,但我不知道是否可以用它来查看BOOL的不同值。
答案 0 :(得分:3)
听起来你只想使用谓词。 NSPredicate Class Reference提供了如何使用它们的好主意。基本上,它会为您的结果添加一个过滤器。例如,假设您有一个核心数据对象,其属性myBool
是一个BOOL(当然,存储为NSNumber)。要根据此结果过滤您的结果,您可以使用类似
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"myBool == %@", [NSNumber numberWithBool:YES]];
[fetchRequest setPredicate:predicate];
然后继续正常。这将仅返回myBool
值为YES的结果。
话虽如此,如果您使用请求简单地填充tableView,最好使用NSFetchedResultsController。可以找到关于如何实现它的精彩教程here。