如何解决按属性IN数组过滤核心数据结果
| 目前,我有Core Data成功返回了名为Event
的特定实体的所有结果:
NSManagedObjectContext *context = [delegate managedObjectContext];
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@\"Event\"
inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
NSError *error;
NSArray *fetchResults = [context executeFetchRequest:request error:&error];
事件实体的一个属性是一个名为“ 2”的字符串。我还有一个数组filterArray
,其中包含所有允许的tid值。
如何获得我的Core Data请求以仅返回具有与filterArray
中的值之一匹配的tid属性的事件?我相信答案与NSPredicate有关,但我对它还不熟悉,无法屈服于我的意愿。
解决方法
尝试这个:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@\"tid IN %@\",filterArray];
[request setPredicate:predicate];
请参阅《谓词编程指南》中的“聚合操作”。
编辑
看看NSPredicate iPhone 3.2 SDK核心数据“ IN子句” NSInvalidArgumentException异常。这是您遇到的相同错误。问题是列/属性名称中有错字。语法应该没问题,不能仅找到tid
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。