NSPredicate核心数据,获取一些对象
问题描述:
我有一个实体,ProductCart &购物车,具有一对多的关系。 ProductCart有一个称为ordered的属性,用于确定产品是否已经订购。现在我想获取ProductCart中尚未订购的所有对象。试过这样的东西,但它不起作用:NSPredicate核心数据,获取一些对象
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"ProductCart"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"inCart == %@ && !ordered == %@", cart, [self valueForKey:@"ordered"]];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"products.name" ascending:YES];
NSArray *sortDescriptors = @[sortDescriptor];
[fetchRequest setSortDescriptors:sortDescriptors];
inCart提取关系,命令给我的问题。我怎样才能解决这个问题?
答
我期待你的谓语应该更像:
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"inCart == %@ && ordered == NO", cart];
,因为你只是想测试的ordered
的状态,而不是尝试将其与其他一些价值。
是'ordered'布尔属性吗?这个谓词是否总是用于尚未命令的事物? – Wain
是的,它是一个布尔属性:)...不,也是当被命令,但为此,我使用另一个fetchrequest和谓词:) – 7c9d6b001a87e497d6b96fbd4c6fdf