2014-04-08 1 views
0

현재 iOS 프로젝트에 LARSAdController을 추가하려고합니다. 즉시 내 AppDelegate.h에서 #import "LARSAdController.h"을 통해 파일을 가져 오면 빌드 프로세스가 실패하고 LARSAdController.h에서 (Class)class이 발생할 때마다 "예상 된 식별자"라는 오류가 발생합니다. BTW 나는 cocoapods를 사용하고 있습니다.LARSAdController의 "(클래스) 클래스"가 발생할 때마다 예상되는 식별자

예 :

나에게 좋은 것 같다
- (void)registerAdClass:(Class)class; 

...

난 빈 프로젝트를 생성하고 컴파일 파일을 가져 오기 때문에 문제가 내 코드에 어떤 관계에 있어야합니다. 누구든지이 문제를 일으킬 수있는 아이디어가 있습니까?

미리 도움 주셔서 감사합니다.

+0

(클래스) 클래스 부분은 외부 라이브러리에 있으며 수정하고 싶지 않습니다. 외부 파일이 문제가되지 않는다고 생각합니다. 빈 프로젝트로 importet을 올바르게 가져옵니다. –

답변

1

class은 C++의 예약어이므로 Objective-C++를 사용하는 프로젝트가 있다고 생각합니다.

이 문제를 해결하려면 Objective-C 구현 파일에만 #import LARSAdController.h을 사용하고 헤더 파일에서 사용을 제거하십시오. @class을 사용하여 헤더 파일에 LARSAdController.h에 정의 된 모든 클래스의 모든 항목을 전달 선언 할 수 있습니다 (이는 어쨌든 모범 사례입니다).

Objective-C++ 클래스에서 LARSAdController을 사용해야하는 경우보다 복잡하며 Objective-C 프록시 개체를 사용하거나 헤더 파일을 수정해야합니다 (이상적이지 않음).

+0

ok 제 컴파일러 설정이 "파일 유형에 따라"가 아니라 objC++ 수정으로 설정되었습니다. 이것은 다른 파일에서 몇 가지 새로운 오류를 발생시킵니다. 앞으로 선언문이 효과가 있거나 어쨌든 필요하다면 다시 올게요. –

+0

제가 주된 문제는 objC++ 파일에서 사용할 수 없게 만드는 "클래스"매개 변수 이름의 차선책입니다. –

+0

@ MaximilianKörner 네, 맞습니다. – trojanfoe

관련 문제