2013-03-16 4 views
1

나는 같은 사용자 정의 정적 라이브러리에 대한 모든 링크가 번들 프레임 워크 폴더에 복사되도록 Quartz Composer에 대한 몇 가지 플러그인을 만들고 있습니다. 플러그인을 별도로 사용할 수 있으므로 각 플러그인에 라이브러리를 배포해야합니다.isMemberOfClass 정적 라이브러리가 두 번 연결됨

모든 것이 isMemberOfClassisKindOfClass 방법에서 떨어져 잘 간다. here 두 번 같은 클래스를 가져 오는 것이 문제의 원인 일 수 있다고 읽습니다.

컴파일 할 때 오류가 없습니다.

lib XCode 프로젝트가 포함 된 2 개의 플러그인 (NSBundles)이 있고이를 링크하기 전에 컴파일한다고합시다. 둘 다 리소스 폴더에 lib를 복사합니다. 그런 다음 해당 라이브러리의 사용자 정의 hOzPolygon2D 클래스를 인스턴스화합니다.

첫 번째 플러그인은 isMemberOfClass 메소드를 사용하여 hOzPolygon2D 객체의 테스트에 true를 반환합니다. 두 번째는 false를 반환합니다. isKindOfCLass 메서드는 같은 "오류"를 반환합니다.

필자의 경우 솔루션을 상상할 수 없습니다. 저는 정말로 편집 전문가가 아니며 도움을 많이 주실 것입니다.

+0

그 방법으로 작동하지 않는 것에 대한 정보를 좀 더 주시겠습니까? –

+0

또한 객체를 식별하기 위해'- [NSObject respondsToSelector :]'(또는'+ [Class instancesRespondToSelector :]')를 사용하여 객체를 식별 할 수 있습니다. 이는 종종 더 좋은 아이디어입니다. –

+0

컴파일하는 동안 어떤 오류가 발생합니까? Xcode는 중복 된 import 문을 자동으로 무시합니다. –

답변

0

정적 라이브러리를 별도의 프레임 워크로 배포해야합니다. 질문 제목에서 필자는 링커에서 중복 된 심볼 오류를보고 있다고 가정합니다. 동일한 정적 라이브러리를 여러 다른 라이브러리에 정적으로 링크 한 다음 이러한 라이브러리 중 둘 이상에 응용 프로그램을 연결하려고하면 이러한 중복 된 심볼 문제를 볼 수 있습니다. 실제로 프레임 워크에서이 작업을 시도하지는 않았지만 상호 의존 정적 라이브러리와 iOS 응용 프로그램을 연결하는 방법으로이 문제를 알고 있습니다.

모듈을 별도로 사용할 수 있다는 사실에 대해 걱정할 필요가 없습니다. 사용자가 기본 라이브러리를 얻을 수 있는지 확인하십시오. 이것은 정상적인 상황입니다. 예를 들어 AppKit과 UIKit은 Foundation에 의존하지만 실제로는 Foundation의 복사본을 포함하지 않습니다.

+0

감사합니다. 내가 lib 설치를 피하고 싶습니다. 사용자를위한 설치 과정을 의미하기 때문입니다. 가능하다면 리소스 폴더에 lib를 유지하는 것을 선호합니다 ... –