ios - 核心数据谓词 - 检查数组中的任何元素是否与另一个数组中的任何元素匹配

标签 ios arrays core-data nspredicate

我正在尝试使用谓词来过滤两个数组之间存在交集的对象。

NSManagedObject 有一个名为“transmissions”的数组(Of Strings)属性。还有另一个数组(Of Strings)将包含要过滤的单词,名为“filters”。

我不确定如何查找“传输”中的任何元素是否与“过滤器”中的任何元素匹配。

我试过了

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY SELF.transmission in[c] %@",transmissions];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY transmission in[c] %@",transmissions];

但是,核心数据在应该有一些结果的地方没有获取任何结果。

最佳答案

试试这个。

NSPredicate *predicate = nil;
NSMutableArray *predicates = [NSMutableArray new];
for (NSString *transmission in transmissions) {
    [predicates addObject:[NSPredicate predicateWithFormat:@"transmission == %@", transmission]];
}
if (predicates.count > 0)
    predicate = [NSCompoundPredicate orPredicateWithSubpredicates:predicates];

// make fetch request using 'predicate'

关于ios - 核心数据谓词 - 检查数组中的任何元素是否与另一个数组中的任何元素匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25159240/

相关文章:

ios - AsyncSocket 在 iPad 的 sleep 模式下崩溃

ios - 如何在 UITableView 处于编辑模式时隐藏条形按钮项目? ( swift )

c - 变量地址与数组元素地址冲突

ios - 授予 Jenkins 解锁钥匙串(keychain)的权限

c++ - C/C++中的二维字符数组

php - 重新排列关联数组最优雅的方法是什么?

cocoa - 在大型核心数据对象池中查找最大日期的更好方法

ios - Swift3 中奇怪的类名与 Core Data 冲突

iphone - 核心数据: Fetch all entities in a to-many-relationship of a particular object?

ios - 需要有关在一个应用程序中在 iOS 设备之间同步数据的建议