首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决NSPredicate错误“不能在集合8(不是集合)中使用/包含运算符”

如何解决NSPredicate错误“不能在集合8(不是集合)中使用/包含运算符”
EN

Stack Overflow用户
提问于 2013-12-16 08:35:59
回答 1查看 6.9K关注 0票数 2

我试着根据初始查询的心情预测我的coredate,所有的情绪都设置为8,我将从每秒0-7调用来更新表视图。

但我有

代码语言:javascript
复制
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't use in/contains operator with collection 8 (not a collection)'

我应该使用other或其他操作符来进行谓词吗?

代码语言:javascript
复制
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];
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-16 09:23:05

这可能意味着mood属性存储为数字,而不是字符串。“包含”只适用于字符串。以下谓词应该可以工作:

代码语言:javascript
复制
NSNumber *mood = @(7);
NSString *filter = @"%K == %@";
NSPredicate *getMoodPred = [NSPredicate predicateWithFormat:filter, @"mood", mood];

以rhs上的NSNumber==作为比较器。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20606453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档