如何查看一个NSArray是否具有另一个NSArray中的所有对象?

时间:2014-08-31 22:31:13

标签: ios objective-c nsarray

NSArray *arrOne包含对象ABCDE

NSArray *arrTwo包含对象BE

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

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

iOS SDK中是否有一个简单的API构建版本,让我这样比较一下?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您可以从数组中创建两个NSSet(或者如果您不关心顺序,则将其替换为集合),然后使用NSSet的{​​{1}}方法。它可能会执行与rdelmar suggested相同的循环,但它也可以通过巧妙的方式进行优化。对于小数量,它可能无关紧要,但如果你有很多成员对象,那么尝试这种方法以确定它是否更快是值得的。

注意:这基本上是James Webster linked to

的解决方案