2013-10-06 3 views
1

작성한 사용자 정의 프레임 워크에서 coreLocationframework를 사용하고 있습니다. 프로젝트에 프레임 워크를 통합 한 후 실행 후 아래 오류가 나타납니다. 아키텍처 i386을위한 응용 프로그램이내 프로젝트에서 corelocation 프레임 워크를 추가해야합니까?

정의되지 않은 심볼 : "_OBJC_CLASS _ $ _ CLLocationManager"에서 참조 : "_kCLLocationAccuracyBest"MYFramework에 objc-클래스 심판에서 참조 : - MYFramework LD에서 [유틸리티 getCurrentLocation] : 기호 아키텍처 i386에 대해 찾을 수 없습니다. clang : 오류 : 링커 명령이 종료 코드 1과 함께 실패했습니다 (볼 때 -v 사용). 호출)

그 후에 나는 단지 내 프로젝트에 동일한 corelocationframework를 추가했다. 그런 다음 오류가 발생하지 않으면 코드가 작동한다.

그래서이 이유가 무엇인지 알고 싶습니다. 다른 프레임 워크도 추가하면 어떻게 될까요?

답변

2

다른 프레임 워크에 의존하는 정적 라이브러리 또는 프레임 워크를 빌드 할 때마다 해당 프레임 워크를 프레임 워크와 최종 프로젝트에도 링크해야합니다.

다른 사람이 사용할 수 있도록이 프레임 워크를 게시하는 경우 프레임 워크를 설치 한 후에 CoreLocation도 연결해야한다는 내용의 지침이 있어야합니다.

예 : 당신의 응답을

MyFramework 
--> Frameworks 
    --> CoreLocation.framework 

MyApp 
--> Frameworks 
    --> MyFramework.framework 
    --> CoreLocation.framework 
+0

귀중한 답변을 주셔서 감사합니다. –

+0

@ KarthikMitta 도와 줘서 고마워, 고마워. :) – iwasrobbed

2

프레임 워크의 핵심은 프레임 워크의 모든 코드가 포함 된 정적 라이브러리입니다. iOS SDK에서 핵심 프레임 워크를 참조하면 동적으로 프로젝트에 링크됩니다. 이 때문에 프레임 워크 프로젝트에서 참조하는 핵심 프레임 워크 중 하나라도 프레임 워크와 연결되는 응용 프로그램에서 참조해야합니다.

+0

감사합니다, 즉 MyFramework 잘못되지 않았거나 고장이 나는 수정입니다뿐만 아니라 내 프로젝트의 핵심 프레임 워크를 추가하는 것을 의미하므로? –

+0

맞습니다. – neilco

+0

답변 해 주셔서 감사합니다. –

관련 문제