2010-04-20 3 views
1

나는 우리가 작업중인 3 개의 프로젝트에서 공통 클래스로 정적 라이브러리를 설정하는 자습서 인 this을 따라갔습니다.iPhone 정적 라이브러리에 헤더 노출

xcode에서 새 정적 라이브러리 프로젝트를 만들고 코드를 추가하고 일부 헤더 역할을 project에서 public으로 변경합니다. 이 튜토리얼에서는 라이브러리 폴더를 header search paths에 재귀 적으로 추가해야한다고 나와 있습니다.

이것이 올바른 방법인가요?

내 라이브러리 프로젝트에서 나는 Global/, InfoScreen/, Additions/과 같은 파일로 구분되어 있습니다. 내가 루트 폴더에 하나의 LOKit.h 파일을 설치하려고했는데 그 파일 안의 #import를 공개해야하는 모든 것. 그래서 내 호스트 프로젝트에서 헤더 검색 경로에 폴더를 재귀 적으로 추가 할 필요가없고 단지 #import "LOKit.h" 일뿐입니다.

그러나이 작업을 수행 할 수 없으므로 호스트 프로젝트는 라이브러리 프로젝트가 빌드 되어도 LOKit.h에 추가하지 않은 모든 클래스에 대해 불만을 나타내지 않습니다.

내 질문은, xCode에서 코코아 터치 정적 라이브러리 프로젝트를 설정할 때 헤더 파일을 노출하는 방법은 무엇입니까?

답변

1

는이 같은 프로젝트의 루트 폴더에 LOKit.h을 설정 결국 :

#import "Global/LOCommon.h" 
#import "Additions/LOAdditions.h" 
#import "View/LOCustomView1.h" 
#import "View/LOCustomView2.h" 

그리고 내 호스트 프로젝트에

나는 재귀없이, 내 라이브러리의 루트 폴더에 헤더 검색 경로 변수를 설정하십시오. 필요할 때마다 LOKit.h을 가져옵니다.

또한이 라이브러리에는 프로젝트간에 공유 된 프로젝트 공용 라이브러리 (예 : JSON, FBConnect 및 Reachabillity)가 포함되어 있습니다. 이 방법으로 한 번에 한 번만 라이브러리를 업데이트하면됩니다.

0

나는 일반적으로 다음 두 가지 방법 중 하나를 이동 정적 라이브러리를 사용 : 나는 라이브러리를 만든 경우 자신을

를하고 다소 단단히 lib 디렉토리를 사용하는 프로젝트에 연결되어, 나는 보통의 소스 루트를 만들 XCode 설정의 라이브러리 그런 다음 소스 루트를 변수로 사용하여 헤더 경로에 재귀 적으로 추가 할 수 있습니다.

반면에 라이브러리가 저 아니면 프로젝트와 완전히 별개로 유지되는 경우 일반적으로 라이브러리 버전과 관련 헤더를 프로젝트를 사용하여 참조하고 참조합니다. 지속적인 업데이 트가 필요하다면 조금 더 번거롭지 만, 라이브러리의 내용이 변경되면 응용 프로그램이 중단되지 않습니다.

+0

감사합니다. 첫 번째 제안은 이미 내가 이미 수행 한 작업이었습니다. 그러나 폴더를 헤더 검색 경로에 재귀 적으로 추가하지 않으려 고 했으므로 노출 할 항목과 라이브러리 사용자를 혼란스럽게하는 항목을 선택할 수 있습니다. – leolobato

관련 문제