2013-10-01 3 views
0

그냥 목표 C와 함께 밖으로 시작하는 것은 너무 부드러운하시기 바랍니다 다음과 같이 나는 클래스를 가지고있다 :.예상 식별자 또는 '('목표 C

Card.h

#import <Foundation/Foundation.h> 

@interface Card : NSObject 
@property (nonatomic) NSUInteger x; 
-(NSUInteger) getNum; 
@end 

Card.m

#import "Card.h" 

@implementation Card 
-(NSUInteger) getNum { 
    return self.x; 
}  
@end 

main.c를

#include <CoreFoundation/CoreFoundation.h> 
#include "Card.h" 

int main(int argc, const char * argv[]) 
{ 
    return 0; 
} 

내가 compil e, 오류가 발생합니다. 첫 번째 메시지는 다음과 같습니다.

NSObjCRuntime.h : 구문 분석 문제 : 예상 식별자 또는 '('.

나는 이것이 뭔가 어리 석다는 것을 알고있다. 단지 누군가 내가 잘못하고있는 것을 발견 할 수 있기를 바란다.

+0

"get"이있는 getter에 접두어를 붙이지 않고 대신 단순히 가져올 속성을 지정하는 것이 Objective-C의 일반적인 규칙입니다. 또한 전체 이름을 철자하는 것이 관습입니다. 귀하의 경우'getNum'는'number'로 작성됩니다. –

+0

포인터 @David에 감사드립니다. 나는 대회가 중요하다고 생각합니다. 이 경우 순전히 테스트 방법을 만들었지 만, 나는 당신의 점수를 탑승 시켰습니다. –

답변

2

실제로 Objective C 컴파일러로 이것을 컴파일합니까? GCC와 ObjC를 사용하도록 명령하는 전통적인 확장은 .m (.c이 아님)입니다.

+0

방금 ​​Xcode에서 OSX '명령 줄 도구'를 만들었고 나를 위해 main.c를 만들었습니다. 실제로 CoreFoundation (테스트에서 변경됨)을 가져 왔습니다. 새 파일 메뉴를 사용하여 갑판 클래스를 만들었습니다. 나는 Xcode에서 그것을 구축하고있다. –

+0

Objective C가 아닌 C 프로젝트를 만든 것처럼 보입니다. 테스트 응용 프로그램을 만들 때 Objective C 파일 인 "Main.m"을 얻습니다. Foundation.h는 Objective C 헤더이기 때문에 컴파일러는 불평을하지만 순수한 C 파일 (main.c)에서 사용하고 있습니다. –

+0

그건 의미가 있습니다! Xcode가 객관적인 C 클래스를 가져올 능력이없는 '명령 행 도구'를 허용한다는 이상한 점이 있습니다. –

관련 문제