【问题标题】:Core Data Object fetching with Predicates使用谓词获取核心数据对象
【发布时间】:2012-04-20 20:22:16
【问题描述】:

我有一个这样的模型 Product ---> 选项(一对多关系,没有-invers)

选项 -------> 大小(一对一的关系,无反转)

选项-------> sold_out(属性,布尔值)

现在我想获取 option.sold_out 为 NO 的所有产品的所有选项的所有尺寸的数组。

如何使用 Predicates 从 Core Data 中获取它,而不是遍历产品数组和选项

【问题讨论】:

    标签: ios nspredicate


    【解决方案1】:

    首先永远不要在 Core Data 中使用单向关系。您可能不会自己使用它,但 Core Data 需要它来实现引用完整性。

    Why does an entity need an inverse?

    现在,关于您的请求。你可以使用这样的东西。

    request.entity = [NSEntityDescription entityForName:@"Product" inManagedObjectContext:managedObjectContext];
    request.prdicate = [NSPredicate predicateWithFormat:@"ANY option.sold_out == %@",[NSNumber numberWithBool: YES]];
    

    更新

    现在,需要相反的是你——因为如果没有 Size---->Option 关系,你就没有足够的方法来完成这个请求。如果你有,我们称之为option,你可以像这样提出你的要求:

    request.entity = [NSEntityDescription entityForName:@"Size" inManagedObjectContext:managedObjectContext];
    request.prdicate = [NSPredicate predicateWithFormat:@"option.sold_out == %@",[NSNumber numberWithBool: YES]];
    

    【讨论】:

    • 谢谢,但这会给我一个产品数组,我需要一个尺寸数组。尺寸在选项中。我们可以这样做吗
    • 谢谢,我想我犯了一个错误,没有跟上倒数。
    猜你喜欢
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多