2013-06-30 9 views
0

작은 Java 라이브러리를 객관적인 c로 번역하고 있습니다. 다른 클래스의 인스턴스한 줄에 여러 함수 호출

return other.tokens[0].equals(tokens[0]) && 
     other.tokens[1].equals(tokens[1]) && 
     other.tokens[2].equals(tokens[2]) && 
     other.tokens[3].equals(tokens[3]); 

을하고, 토큰은 동일한 클래스의 인스턴스 변수 인 문자열 배열입니다 : 나는 다음과 같은 번역 몇 가지 문제가 있어요. 지금까지 내가 가지고있는 것은 다음과 같습니다.

return ([other [[tokens[0] equals:tokens[0]]]] && 
     [other [[tokens[1] equals:tokens[1]]]] && 
     [other [[tokens[2] equals:tokens[2]]]] && 
     [other [[tokens[3] equals:tokens[3]]]]); 

"예상 된 식별자"오류가 계속 발생하는데, 이는 내 구문에 문제가 있음을 의미합니다.

당신은 당신의 인생을 쉽게로 4 개 라인으로 네 가지 조건을 파괴 할 수

답변

1

Quad 클래스에서 getToken 메서드를 구현 했으므로 다음 구현시이를 사용할 수 있습니다.

return ([[other getTokens:0] isEqualToString: [self getTokens[0]] && 
     [[other getTokens:1] isEqualToString: [self getTokens[1]] && 
     [[other getTokens:2] isEqualToString: [self getTokens[2]] && 
     [[other getTokens:3] isEqualToString: [self getTokens[3]]); 
+0

get 메소드를 잊어 버렸습니다. 고마워요! – Malfunction

0

:

for(NSInteger i=0; i<4; i++){ 
    if(![other.tokens[i] isEqualTo:tokens[i]]){ 
     return NO; 
    } 
} 
return YES; 
: 하나가 False 반환 NO 경우

BOOL b1=[other.tokens[0] isEqualTo:tokens[0]]; 
BOOL b2=[other.tokens[1] isEqualTo:tokens[1]]; 
BOOL b3=[other.tokens[2] isEqualTo:tokens[2]]; 
BOOL b4=[other.tokens[3] isEqualTo:tokens[3]]; 

return (b1 && b2 && b3 && b4); 

또한, 다른 방법은, 모든 값을 반복한다

그리고 어떤 종류의 가치 (Object/NSString/Number 등)를 비교하고 있는지 잘 모르겠습니다. Implementing -hash/-isEqual:/-isEqualTo...: for Objective-C collections

+0

아마도 위의 구문을 사용할 때 오류가 발생합니다. 아마도 도트 구문으로 인해 문제를 해결할 방법을 모르겠습니다. – Malfunction

+0

또한 "토큰"은 NSArray입니다. – Malfunction

+0

어떤 오류가 있습니까? –

0

당신은 문자열 비교에서 작업하는 경우 이러한 방법은 목적 C.에서 "동일 없다"있다, 그것은

[[token objectAtIndex: 0] isEqualToString:[token objectAtIndex: 0]] 

을해야하지만, 왜 같은 문자열을 비교할 수 있습니다.

+0

동일한 문자열을 비교하지 않습니다. 첫 번째 문자열은 "other"의 인스턴트 변수입니다. 코드의 첫 번째 부분에 "기타"를 어떻게 추가합니까? – Malfunction

관련 문제