我实际上有一个名为Show的核心数据实体,对于每个节目,我都有一个名为Schedule的关系,它包含一个名为schedules的属性,它是一个数组。
我想要做的是创建一个谓词,如果它有超过1个项目,则检查给定节目的时间表。
要做到这一点我尝试了两种解决方案:
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"schedule.schedules > 1];
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"schedule.schedules.@count > 1];
但他们都没有用。
注意:schedules属性存储在我的Core Data中作为Transformable并声明为id变量。
答案 0 :(得分:2)
可转换属性存储为二进制数据,并且在容器实体加载到内存之前不会解压缩。因此,您不能使用基于fetch中的可转换属性的任何类型的谓词。它只能过滤获取的结果。
廉价的解决方案是存储一个带有count的简单整数属性并使用它。
更好的解决方案可能是添加/更改您的实体,因此您使用关系而不是可转换。
答案 1 :(得分:0)
你试过这个吗?
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"@count.schedule.schedules > 1];