你的問題很混亂;顯然你已經編寫了一個應用程序,它能夠從XML文件中提取數據,解析它,創建一個數組,並按照時間表完成所有這些,但卻不知道如何比較兩個項目?這聽起來像我誤解你的問題!因此,這裏是一個猜測,也許它會幫助:
可可有對象平等的模式 - 兩種方法isEqual:
和hash
協同工作,提供測試標準的方式兩個對象實例是否是「平等」,不管這意味着根據對象代表什麼。
由所有的標準類提供這些方法,這樣就可以測試兩種NSString
實例是否表示相同的字符串等。對於集合類如NSArray
其isEqual:
方法通過調用其isEqual:
在兩兩這兩個陣列中的元素進行比較方法等
的基類,NSObject
,提供了一個默認的實現,但它無法知道什麼平等特定類意味着它的實現是非常基本的 - 兩個對象只有當它們是完全一樣的對象相等,如果和,即[a isEqual:a]
是YES
,沒有別的。
所以,你需要提供一個isEqual:
和(這很重要)hash
對你的類,它實現的是爲你的類平等 - 這是在它的一些性能方面可能定義,如name
你提到,並會調用他們的isEqual:
方法。
當然,如果你的類的平等只是基於它的一個屬性,如name
,實現isEqual:
& hash
是微不足道的 - 的實現只需撥打該屬性相同的方法。在這種情況下,你甚至不需要自己實現這對,你可以直接訪問屬性進行比較。喜歡的東西:
NSUInteger indexOfInterest = ...;
MyClass *objectA = arrayA[indexOfInterest];
MyClass *objectB = arrayB[indexOfInterest];
BOOL itemsAreEqual = [objectA.name isEqual:objectB.name];
如果你的財產是不是一個對象類型,但一些基本類型,如int
,那麼你只需要使用標準相等操作:
BOOL itemsAreEqual = objectA.name == objectB.name;
閱讀:Object Comparison從蘋果的可可核心競爭力。
來源
2014-03-03 19:42:19
CRD
你目前的代碼是什麼樣的,你有什麼問題? – admdrew
我沒有當前的代碼,我只需要比較索引中的對象我不知道該怎麼做 – user3371091
一旦你自己嘗試了一些東西,仍然有問題,請回頭! – admdrew