代码之家  ›  专栏  ›  技术社区  ›  Jonah

如何根据Objective-C中另一个数组中的对象过滤数组?

  •  1
  • Jonah  · 技术社区  · 15 年前

    我在tableView中有一个对象数组。我希望用户能够转到另一个页面,从一个对象清单中选择来过滤第一个数组。

    我应该如何处理清单中的数据?我目前正在将其作为选定对象的NSMutableArray来处理。但是如何用另一个数组的内容过滤第一个数组呢?

    我应该把每一项都当作NSString来处理吗?

    谢谢你的帮助!

    3 回复  |  直到 15 年前
        1
  •  1
  •   luvieere    15 年前

    我宁愿使用NSMutableDictionary而不是第二个数组,将每个对象(键)关联一个值,告诉我它是否被选中。这样,当我检查第一个阵列(需要过滤的阵列)时,验证所选设置会更快。

        2
  •  1
  •   Elfred    15 年前

    如果对象实现isEquals:\hash,则可以使用NSSet存储选定的对象。然后,您可以执行一个集合查找,看看它们是否被选中。您应该能够构造一个NSPredicate并使用它过滤数组。

        3
  •  1
  •   zaph    15 年前

    如果可能,使用NSMutableSets,只使用交集。

    从接收器中移除不属于另一个给定集合的每个对象。

    - (void)intersectSet:(NSSet *)otherSet
    

    可以使用以下方式创建集合: