2011-05-26 186 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