2013-10-19 1 views
0

c를 내가라는 NSObject의 클래스와 정적 라이브러리에서 일하는 'ClientRequest'나는 내 다른 클래스 타입 ClientRequest의 NSObject의를 가져올 수 있었다다중 인터페이스 같은 구현을 가진 - 중복 기호 오류 - 목표 -

: A는 B와

C.

그래서 모든 위에서 언급 한 클래스는 정적 라이브러리 프로젝트 (.xcodeproj)는 내 자신의 프로젝트에 추가 된

#import "ClientRequest.h" 

@interface A : ClientRequest 

#import "ClientRequest.h" 

@interface B : ClientRequest 

#import "ClientRequest.h" 

@interface C : ClientRequest  

아래처럼 구현하고 대상은 정적 libary에 포함. 자신의 프로젝트를 실행할 때 A 및 B, A 및 C & A 및 ClientRequest에 대해 'i386 아키텍처의 _API_BASE_ 중복 오류'오류가 발생했습니다.

모든 아이디어이 문제를 해결하는 방법은 무엇입니까? 클래스 A, B 및 C는 ClientRequest의 메서드를 사용합니다.

+0

파일을 어떻게 가져 옵니까? – Sebastian

+0

세부 정보를 수정했습니다. –

답변

1

정확히 무엇을하고 있는지는 추가 정보 없이는 판단하기가 어렵습니다. 그러나 주어진 것에서 그것은 당신이 새 파일을 포함하는 모든 파일에서 정의되고 여러 항목으로 끝나도록 ClientRequest.h 파일에 API_BASE을 정의하는 것처럼 보입니다.

전역 변수를 잘못 정의하면이 문제가 발생할 수 있습니다. 당신이로 ClientRequest.h에서 전역 변수를 선언하면

는 말 :

int API_BASE; 

다음 헤더는 그 변수의 복사본을 정의하고 중복 기호 오류를 얻을 수 있습니다 포함되어 컴파일 된 모든 파일.

extern int API_BASE; 

ClientRequest.m에 한 번 정의 :

int API_BASE; 

extern 키워드는 선언을 나타냅니다 선언에 그것을 할 올바른 방법은 헤더에 통근`등의 변수가있다 다른 곳에서 정의 될 변수의 이름과 유형.

모든 함수/메소드 선언은 내재적으로 외부이지만 키워드는 변수에 필요합니다.

HTH