2013-05-21 4 views
1

나는이 책에서 튜토리얼을하고있다. "Objective-C 2.0 Essentials 3 판"Neil Smyth. 반복적으로 시도했지만 도서 버전의 실행을 주장하더라도 동일한 "예상 된 표현"오류가 계속 발생합니다. 나는 너무 많은 시간을 확인했고 내 버전은 책과 정확히 동일합니다. 제발, 누군가 나를 도울 수 있겠 어. 코드 아래 :예상되는 표현 오류 - 목표 c

#import <Foundation/Foundation.h> 

int main (int argc, const char * argv[]) { 
    @autoreleasepool { 
     int x; 
     int j = 54321; 

     for (x = 0; x < 10; x++) { 

     } 

     int j = x + 10; 
     NSLog (@"Variable j in for loop is %i", j); 

     NSLog (@"Variable j outside for loop is %i", j); /* I GET AN ERROR STATING " EXPECTED EXPRESSION HERE*/ 

    } 
    return 0; 
} 

답변

1

형식 코드 더 나은; 당신이 할 경우 코드에서 잘못 } 분명하게 :

#import <Foundation/Foundation.h> 
int main (int argc, const char * argv[]) { 
    @autoreleasepool { 
     int x; 
     int j = 54321; 
     for (x = 0; x < 10; x++) { 
      int j = x + 10; 
      NSLog (@"Variable j in for loop is %i", j); 
     } 
   NSLog (@"Variable j outside for loop is %i", j); 
    } 

    return 0; 
} 

편집가 @MartinR 지적으로 보이지 않는 문자도 문제가 있습니다 (I 통지하지 않았다). 따라서 코드에는 두 가지 오류가 있습니다.

+0

+1 내가 OP의 코드에서 누락 된 중괄호가 표시되지 않습니다,하지만 난 당신이 실제 소스에서 누락 한 거기에 그 권리라고 생각 :

영업 이익의 코드는 헥사 편집기에서 열립니다. – Caleb

+0

@ Caleb 나는 처음에는 그것이 빠져 있다고 생각했지만, 잘못 배치되었다. 대답의 핵심은 코드를 형식화하는 것입니다. 그러면 오류를 더 쉽게 볼 수 있습니다. 이 문제를 부각시키기 위해 원래의 질문에 수정되지 않았 으면 좋겠습니다. – trojanfoe

+0

@Caleb 나는 똑같은/새로운 라인의 "브레이스"에 전혀 빠지지 않고 있었다. 들여 쓰기가 제가 강조한 유일한 문제였습니다. – trojanfoe

4

라인

NSLog (@"Variable j outside for loop is %i", j); 

은 탭과 "NSLog"사이에 보이지 않는 문자 (UTF-8 = 서열 EF BF BC OBJECT 대체 CHARACTER)을 많이 포함한다.

해당 행을 삭제하고 다시 작성하면 도움이됩니다. enter image description here

+0

+1 흥미 롭습니다. 나는 그것을 보지 못했다. – trojanfoe

+0

스크린 샷을 추가하면 응답 속도가 빨라졌고 알레시를 만들었습니다. – Sulthan

+0

@ 트로이안 : Xcode에서 "보이지 않음 보이기"조차도 문자를 "너비가 아닌"공백으로 표시하기 때문에 알아보기가 어렵습니다. 내 눈을 끈 것은 "NSLog"에 문법 색이 없다는 것이 었습니다. –