【问题标题】:Core Data - running through relational objects核心数据——通过关系对象运行
【发布时间】:2014-03-13 08:24:41
【问题描述】:

我是核心数据的新手,我有 3 个实体 类别有许多子类别,而这些子类别又具有许多商店。 他们在我的应用中表示它的方式是主-详细-详细表视图控制器最自然的方式。

我的问题来了,例如,我想要一个类别,如果其子类别在某些情况下没有商店(例如,用户选择关闭离他太远的商店),则不向用户显示。

在 SQL 中我会执行某种连接,但我不确定如何在核心数据中执行它,我基本上需要对该类别的商店执行某种“过滤”,如果它是空的,则不是显示类别。

我猜我目前的解决方案很糟糕,是使用谓词获取一个类别的所有子类别,如果它们根据提供的条款没有商店,则在每个子类别上运行,如果它们都是空的,我不显示类别。

还有更自然的解决方案吗?

【问题讨论】:

    标签: ios objective-c core-data


    【解决方案1】:

    试试这个:

    [NSPredicate predicateWithFormat:@"subcategories.shops.@COUNT != 0"];
    

    【讨论】:

    • 谢谢,我不知道我读过的所有指南是怎么回事,我可能会错过核心数据提供如此简单的点语法。
    【解决方案2】:

    如果我正确理解了您的数据模型,使用此类谓词执行 fetchRequest 应该会对您有所帮助:

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"subcategories.shops != nil)"];
    

    【讨论】:

      猜你喜欢
      • 2015-08-24
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多