ios - NSPredicate 使用列表中的任何对象搜索数组 |对象C

标签 ios objective-c arrays sorting search

我必须根据标签 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/

相关文章:

ios - Reskit - 映射到数组

ios - NSXMLParser 在 XML 文件中找到注释时停止解析

ios - 如何绘制围绕特定点旋转的 NSAttributedString?

iOS 8 在 UVManager.m 中崩溃,这不是我的类(class)之一

ios - NSDateComponents(通过 MTDates)返回一个奇怪的小时数(mt_hourOfDay)

iphone - 如何在 iPhone 应用程序中获取文件路径

objective-c - NSMenuItem、自定义 View 和 mouseUp 的奇怪问题 :

Javascript:用两个可能的项目对多个数组进行排序

PHP根据特定数组键合并数组

PHP:使用计数器的关联数组,在第一次递增之前将每个值显式初始化为 0 是否更符合习惯?