2013-03-31 2 views
0

NSCoding 및 NSKeyedUnarchiver를 사용하여 검색 한 캐시 된 개체의 배열이 있습니다. 이것들은 많은 속성을 가지고 있습니다.두 개체의 내용이 동일한 지 확인하는 가장 좋은 방법은 무엇입니까?

이제 생성 한 객체의 내용이 배열의 캐시 된 객체 내용과 일치하는지 확인해야합니다. 물론 containsObject를 사용하여 객체에 대한 참조가 같은지 확인할 수는 없지만 내용이 동일한 지 확인할 수 있습니다. 최종 결과를 얻는 방법을 알고 있지만이 경우 가장 좋은 방법은 무엇입니까? 가능한 한 적은 시간이 걸리게하고 싶습니다.

개체가 모든 속성이 일치하는 경우에만 동일하다는 점에 유의하십시오.

감사합니다.

답변

4

클래스에 isEqual:hash 메서드를 구현합니다. isEqual:의 구현은 모든 속성을 비교해야합니다.

당신은 그 두 가지 방법이 제대로 구현 한 후에는 NSArray containsObject: 또는 NSArray indexOfObjects: 등의 수집 방법을 사용할 수있다 등

+0

그래서 그 필요 오버라이드 (override)하는 ISEQUAL : 및 해시? –

+0

-hash를 오버라이드 할 필요는 없습니다 (NSObject는 라인을 유지하는 것이 좋지만) isEqual :을 권장합니다. – CodaFi

+2

두 개체가 같은 것으로 나오면 같은 해시 값을 가져야합니다. – rmaddy

관련 문제