我的目标是在解析已存在于缓存中的项目时放弃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