【问题标题】:How do I see if one NSArray has all of the objects in another NSArray? [duplicate]如何查看一个 NSArray 是否包含另一个 NSArray 中的所有对象? [复制]
【发布时间】:2014-08-31 22:31:13
【问题描述】:

NSArray *arrOne 有对象 ABCDE

NSArray *arrTwo 拥有对象BE

我想看看arrOne 是否有arrTwo 中的对象。在上面的例子中,我希望它返回YES/TRUE

如果arrTwo 有对象BEQ,那么它将返回NO/FALSE,因为Q 不在arrOne 中。

iOS SDK 中是否有一个简单的内置 API 可以让我进行比较?

【问题讨论】:

  • 有类似问题here

标签: ios objective-c nsarray


【解决方案1】:

不,没有简单的 NSArray 方法可以做到这一点。如果 arrTwo 始终是较短的数组,那么最好的方法是遍历其内容,检查 arrOne 是否包含这些对象。在循环内,如果对象不包含在 arrOne 中,则返回 NO。如果它一直通过循环,那么它应该返回 YES。

【讨论】:

  • 好的,谢谢。希望有内置的东西,但如果没有,我会做一些循环。
【解决方案2】:

你可以从数组中创建两个NSSets(或者用集合替换它们,如果你不关心顺序),然​​后使用NSSet-isSubsetOfSet:方法。它可能会执行与rdelmar suggested 相同的循环,但它也可能在幕后以巧妙的方式进行优化。对于小计数,这可能无关紧要,但如果您有很多成员对象,则值得尝试这种方法,看看它是否更快。

注意:这基本上是James Webster linked to 的解决方案。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-02-14
  • 2012-04-06
  • 2021-03-22
  • 1970-01-01
  • 1970-01-01
  • 2010-11-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多