2012-10-27 3 views
0

이라면 간단 할 것입니다.하지만 Objective C를 사용하기 시작했는데 응답이 맞는지 확인하기 위해 응답을 비교하려고합니다. 컴파일러 오류. Im은 "자기"에 대해 혼란스럽고 질문 객체에 저장된 답변을 얻는 방법을 혼란스럽게합니다. 감사.만약 Objective C의 문장이

- (BOOL) verifyAnswer:(Answer *)response 
{ 
    if (response isEqual:[self.answer]) 
     return YES; 
    else 
     return NO; 
} 

답변

2

유효한 Objective-C 구문이 아니기 때문에 오류가 발생합니다.

[object method]; 

또는 인수 : 귀하의 경우

[object methodWithArgument:arg1 otherArgument:arg2]; 

당신이 NSObject 클래스의 방법 isEqual:을 (호출하려는의 Obj-C의 방법과 같이 대괄호 구문을 사용하여 호출에 대부분의 코코아 클래스의 루트 클래스). 이 메소드를 모든 객체에서 호출하고이를 비교할 다른 객체의 인수로 전달합니다. 그래서 올바른 구문이 있습니다 :

if ([response isEqual:self.answer]) 

주의 깊게 The Objective-C Programming Language을 읽어 보시기 바랍니다.

+0

그래 간단합니다. 감사! – JProg

+0

메신저는 대괄호에 사용되지 않습니다. 우리는 자바에있는 것을 가지고 있지 않습니다. – JProg

+2

@JProg 자바에서는 많이 달라집니다. 그리고 이것을 단축하여'return [response isEqual : self.answer];'할 수 있습니다. –