【问题标题】:iOS: NSPredicate for "@count == 0" for both to-one and to-many relationshipsiOS:“@count == 0”的 NSPredicate 用于一对一和一对多关系
【发布时间】:2012-04-23 09:20:06
【问题描述】:

我想写一个NSPredicate,它适用于一对一和多对关系:

1) 我有一个 NSMutableArray,它将运行 filterUsingPredicate 方法

2) NSPredicate 将过滤掉包含关系中任何对象的选定关系(同样,对于一对一和对多关系)。

我尝试过类似predicateWithFormat:@"relationshipObjects.@count == 0" 的方法,但这似乎只适用于多对关系。是否有类似的谓词格式适用于一对一和一对多关系?

【问题讨论】:

    标签: ios xcode core-data nspredicate nsmanagedobject


    【解决方案1】:

    我认为,您可以在此处使用检查 nil

    predicateWithFormat:@"relationshipOject != nil"
    

    【讨论】:

    • 您好,感谢您的回复!也许我不清楚,但我希望过滤器保持零关系。但是,如果我使用“relationshipObject == nil”,它只适用于一对一的关系。我目前正在尝试@"(relationshipObject == nil) OR (relationshipObject.@count == 0)" 但它会导致错误,因为一对一的 NSManagedObject 不响应@count。
    • 我继续使用 NSCompoundPredicate 根据关系类型(一对一或对多)将谓词分成两部分。这行得通。
    • powetoold 你能发布你做了什么吗?
    • predicateWithFormat:@"relationshipOject != nil" 不适用于我的一对一关系:(
    • 我的没有工作,因为我正在为我的 NSFetchedResultsController 使用缓存。它有助于更​​改缓存的名称。 NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:@"NewCacheName123"];
    猜你喜欢
    • 2012-08-27
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    相关资源
    最近更新 更多