如何解决NSPredicate错误'不能用于/包含运算符与集合8(不是集合)
我试图根据初始查询的情绪来预测我的coredate,所有的心情都设置为8.我将每秒从0 – 7调用来更新tableview。
但我得到了
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't use in/contains operator with collection 8 (not a collection)'
我应该使用CONTAINS还是其他运算符来谓词?
NSString* filter = @"%K CONTAINS[cd] %@"; NSPredicate *getMoodPred = [NSPredicate predicateWithFormat:filter, @"mood", mood]; NSLog(@"getmood %@",getMoodPred); //getmood mood CONTAINS[cd] "7" NSArray *getMoodArray = [[VPPCoreData sharedInstance]allObjectsForEntity:@"Song" orderBy:Nil filteredBy:getMoodPred];
可能意味着mood
属性存储为数字,而不是string。 “CONTAINS”仅适用于string。 以下谓词应该工作:
NSNumber *mood = @(7); NSString *filter = @"%K == %@"; NSPredicate *getMoodPred = [NSPredicate predicateWithFormat:filter, @"mood", mood];
在rhs和==
上使用NSNumber
作为比较器。