iOS:“@count == 0”的 NSPredicate 用于一对一和一对多关系
Posted
技术标签:
【中文标题】iOS:“@count == 0”的 NSPredicate 用于一对一和一对多关系【英文标题】:iOS: NSPredicate for "@count == 0" for both to-one and to-many relationships 【发布时间】:2012-04-23 09:20:06 【问题描述】:我想写一个NSPredicate
,它适用于一对一和多对关系:
1) 我有一个 NSMutableArray
,它将运行 filterUsingPredicate
方法
2) NSPredicate 将过滤掉包含关系中任何对象的选定关系(同样,对于一对一和对多关系)。
我尝试过类似predicateWithFormat:@"relationshipObjects.@count == 0"
的方法,但这似乎只适用于多对关系。是否有类似的谓词格式适用于一对一和一对多关系?
【问题讨论】:
【参考方案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"];以上是关于iOS:“@count == 0”的 NSPredicate 用于一对一和一对多关系的主要内容,如果未能解决你的问题,请参考以下文章