我的目標是在解析已存在於緩存中的項目時放棄NSXMLParser。程序的基本流程如下所示:正確測試對象數組對象的最佳方法是什麼?
1)程序啓動並下載XML提要。 Feed中的每個項目都由一個自定義對象(FeedItem)表示。每個FeedItem都被添加到數組中。
2)解析完成後,數組的內容(所有FeedItem對象)都會存檔到磁盤中。
下一次執行程序或者用戶刷新feed時,我會再次開始解析;然而,由於緩存(數組)現在存在,因爲每個項目被解析,我想看看對象是否存在於緩存中。如果確實如此,那麼我知道我已經下載了所有新項目,不再需要繼續解析。
我在學習的是,我認爲,我不能使用indexOfObject或indexOfObjectIDenticalTo:因爲這些看起來似乎是檢查對象是否使用相同的內存地址(因此是相同的)。
我想要做的是看看對象的內容是否相等(或至少一些內容)。我做了一些研究,發現我可以重寫IsEqual方法;然而,我真的不想迭代/枚舉整個緩存內容表爲每個新分析的XML FeedItem。是迭代通過收集和測試每個人的平等唯一的方式來做到這一點或有沒有更好的技術,我不知道?
目前我使用下面的代碼,但我知道它需要改變:
NSUInteger index = [self.feedListCache.feedList indexOfObject:self.currentFeedItem]; if(index == NSNotFound){ }
'indexOfObject:'不在相同的內存地址上測試:'如果isEqual被認爲是對象相等:返回YES' – testing 2010-10-25 14:39:16