我必须根据标签 ID 数组对字典数组进行排序/搜索。
网络服务发送一个文章列表,每篇文章的标签 ID 例如 [1,2,3,5]。
用户从列表中选择多个标签,这些标签 ID 存储在 [4,2,8,1] 等数组中
** 现在我必须将用户选择的标签与文章标签进行比较,如果 2 个数组中的任何标签匹配,则将其存储在结果数组中 **
我应该使用什么以及如何使用? NSPredicate 或 NSSortdescriptor
简而言之,我必须做这样的事情:
userTags = [4,6,2,1]
articleTags = [1,2,3,4,5]
if ANY [userTags] IN [articleTags]
[resultArr addObject:article]
最佳答案
我相信你应该使用 NSSet 来完成你的任务,而不是 NSArrays。并检查集合是否相交,例如:
NSSet *tags = [NSSet setWithArray:@[@1, @3, @5]];
NSSet *article1 = [NSSet setWithArray:@[@2, @4, @6]];
NSSet *article2 = [NSSet setWithArray:@[@2, @3, @4]];
NSLog(@"%d", [tags intersectsSet:article1]);
// 0
NSLog(@"%d", [tags intersectsSet:article2]);
// 1
关于ios - NSPredicate 使用列表中的任何对象搜索数组 |对象C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42625076/