2011-05-26 124 views
11

如何比较两个NSMutableArray?如果两者都相同,则返回true,否则返回false。如何比较两个NSMutableArray?

谢谢...

+0

的可能重复[如何比较两个NSMutableArrays?](http://stackoverflow.com/问题/ 14332971/how-to-compare-two-nsmutablearrays) – nyuszika7h 2015-02-11 18:48:00

+1

@ nyuszika7h:请检查问题的日期! :) – Maulik 2015-02-11 20:29:25

+0

嗯,我试图改进这个建议编辑,它告诉我一个问题,该标题已经存在,所以就是这样。不过,我并没有意识到这个年纪较大。 – nyuszika7h 2015-02-11 20:31:08

回答

28
return ([array1 isEqualToArray:array2]); 

回报YES如果数组相等,否则返回NO

+2

-1 from me。你有几个问题。 1)该方法已经返回BOOL YES或NO,所以需要测试BOOL并返回相同的结果。 2)Objective-C中的BOOL是'YES'和'NO'不是'true'或'false'。它会编译 - 但它不是一个可可约定。 – Abizern 2011-05-26 12:20:01

+0

@Abizern:+1!谢谢,我会编辑我的答案。我做了一个测试,让一个noob用户可以更好地理解这个想法。 – visakh7 2011-05-26 12:23:22

+1

对不起 - 差的风格是不好的风格。使用一个方法来调用一个方法,只是返回它的结果? – Abizern 2011-05-26 12:26:04

9

是否isEqualToArray:方法帮你?

其他方法是遍历两个数组,并使用isEqual:方法比较每个对象。致电isEqualToArray:也是一样。请注意,在这两种变体中,如果数组对象类不是标准类,则应该在数组对象类中实现isEqual:方法。

就在这个操作之前,你可以比较它们的长度,如果它们不相等,那么在更复杂的计算上没有花费资源的点。

+0

-1。第一部分是好的 - 我认为你的解释是错误的。通常使用特定的“isEqualTo”方法而不是通用的“isEqual”方法更好。在数组中,它首先检查你的长度,然后比较每个对象。 – Abizern 2011-05-26 12:24:27

+0

我刚才提到了另一种比较对象的方法(它可能很有用)。我把它称为_other_方式。在第三部分中,我提到了数组长度比较。当然,它值得减,我的坏。 – knuku 2011-05-26 12:50:56

+0

如果用户不想比较整个对象,实现'isEqual:'好得多。如果我们只比较苹果的大小和颜色,会怎么样?我们不需要知道苹果里面有多少种子。希望你已经得到了 – knuku 2011-05-26 13:00:10

3
[array1 isEqualToArray:array2]; 
3

应该能够使用NSArray基类的一个阵列比较另一个数组:

- (BOOL)isEqualToArray:(NSArray *)otherArray 
6

使用isEqualToArray:方法来比较两个数组对象

这样的:

方法1:

return [array1 isEqualToArray:array2]; //return YES or NO 

方法2:

if([array1 isEqualToArray:array2]) {//perform condition on YES} 
0
if([array1 isEqualToArray:array2]){ 

    }else{ 

    } 
+0

提供方法文档的链接或添加有关方法如何进行比较的注释将会很好。 – Tala 2013-08-06 09:58:53