【问题标题】:NSPredicate core data, fetch some objectsNSPredicate 核心数据,获取一些对象
【发布时间】:2014-02-24 14:32:58
【问题描述】:

我有一个实体 ProductCart 和 Cart,具有一对多关系。 ProductCart 有一个名为ordered 的属性,用于确定产品是否已订购。现在我想获取 ProductCart 中尚未订购的所有对象。尝试过这样的事情,但它不起作用:

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 获取关系,ordered 给我带来了问题。我怎样才能解决这个问题?

【问题讨论】:

  • ordered 是布尔属性吗?这个谓词是否总是用于未排序的事物?
  • 是的,它是一个布尔属性 :)... 不,什么时候也已订购,但为此我使用另一个 fetchrequest 和谓词 :)

标签: ios iphone objective-c core-data


【解决方案1】:

我希望你的谓词应该更像:

fetchRequest.predicate = [NSPredicate predicateWithFormat:@"inCart == %@ && ordered == NO", cart];

因为您只想测试ordered 的状态,而不是尝试将其与其他值进行比较。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 2020-02-22
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    相关资源
    最近更新 更多