2014-03-03 2 views
-2

내 문제는 ...두 배열의 개체 인덱스 비교

XML 파일에서 가져온 데이터를 파싱 한 다음 배열에 저장하는 데이터가 있습니다.

이 데이터는 ~ 60 분마다 업데이트됩니다.

이제는 같은 데이터를 파싱하지만 일주일에 한 번만 두 번째 배열을 만들었습니다.

이제 60 분마다 업데이트되는 배열과 7 일마다 업데이트되는 배열이 생깁니다.

이유는 팀 테이블을 만들고 팀이 순위를 올렸거나 내려 갔는지 확인하기 위해서입니다.

내 첫 번째 문제가 해결되었으므로 최신 데이터가있는 팀과 주 오래된 데이터가 포함 된 팀이 2 개 있습니다.

두 번째 문제는 이러한 개체 인덱스를 어떻게 비교합니까? 각 개체는 .name 또는 .teamid와 같은 많은 속성을 가지고 있습니다.

ArrayA Object.name과 ArrayB.name을 비교하는 방법에 대한 샘플 코드를 제공 할 수 있습니까?

정말 고마워요.

+0

현재 코드는 어떤 모양이며 어떤 문제점이 있습니까? – admdrew

+0

나는 현재 코드가 없기 때문에 색인에있는 객체를 비교할 필요가있다. 어떻게 해야할지 모른다. 단서가 없다. – user3371091

+0

자신이 뭔가를 시도해 본 후에도 여전히 문제가 있다면, 다시 돌아 가자! – admdrew

답변

0

귀하의 질문에 혼란이 있습니다. 분명히 XML 파일에서 데이터를 가져 와서 구문 분석하고, 배열을 만들고, 모든 작업을 시간 계획에 따라 수행 할 수 있지만 두 항목을 비교하는 방법을 알지 못하는 응용 프로그램을 작성 했습니까? 내가 너의 질문을 오해 한 것 같아! 그래서 여기 추측은, 어쩌면 도움이 될 것입니다

코코아는 객체의 평등에 대한 패턴이 -이 개 객체 인스턴스가 "동일한"여부를 테스트하는 표준화 된 방법을 제공하는 두 가지 방법 isEqual: 함께 hash 일을, 어떤 그것은 객체가 나타내는 것의 관점에서 의미합니다.

이 방법은 모든 표준 클래스에서 제공하는, 그래서 두 NSString 인스턴스 컬렉션 클래스의 경우 동일한 문자열 등을 나타냅니다 여부를 NSArrayisEqual: 방법은 자신의 isEqual:를 호출하여 쌍으로 두 배열의 요소를 비교하여 같은 테스트 할 수 있습니다 메소드 등.

기본 클래스 인 NSObject이 기본 구현을 제공하지만 특정 클래스에 대한 동일성의 의미를 알 수 없으므로 구현이 매우 기본입니다. 두 객체는 ​​정확하게 동일한 객체 인 경우에만 동일합니다 즉 [a isEqual:a]YES이고 다른 것은 없습니다.

그래서 당신은 제공해야 isEqual: (이 중요하다) 클래스에 대한 평등이 무엇인지 구현 클래스에 대한 hash 쌍 - 아마 그것의 속성 중 일부의 측면에서 정의 등 name으로, 당신은 언급하고 그들의 isEqual: 메소드를 호출 할 것입니다. 물론

이 클래스의 평등은 단순히 isEqual: & hash 구현 name과 같은 속성 중 하나를 기반으로하는 경우 하찮은이다 - 구현은 단지 해당 속성에서 동일한 메소드를 호출. 이 경우에는 직접 쌍을 구현할 필요가 없으며 직접 속성을 비교할 수 있습니다.뭔가 같은 :

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 애플의 코코아에서을 핵심 역량.