2014-11-07 5 views
1

내 Xcode 프로젝트에서 ios7 및 ios8에 대해 동일한 프레임 워크를 추가했습니다. 이들을 xxx-ios7.framework 및 xxx-ios8.framework로 이름을 변경했습니다. objc_getClass ("someclass")를 사용하여 런타임 클래스를 가져 오려고합니다. 그러나 두 프레임 워크에는 동일한 클래스가 있습니다. 내가 어떤 수업을 받는지 어떻게 알 수 있니?objc_getClass에 대한 혼란

+1

단일 응용 프로그램에서 동일한 이름을 가진 두 개의 다른 클래스를 갖는 것은 좋지 않습니다. 당신은 때때로 그것과 함께 떠날 수 있지만 그것을 의심하지 않을 때 그것은 $ $에서 당신을 물 것입니다. –

답변

1

위의 대답은 좋지 않을 수도 있지만 Microsoft가 버전 번호를 정의하는 MFC 클래스에서 사용한 것과 동일한 메커니즘을 사용할 수 있습니다. 당신을 위해 의미있는 버전 정보를 반환

- (NSString*)classVersionAsString; 
- (NSInterger)classVersionAsNumber; 

:

은 본질적으로, 당신은 같은 방법 또는 방법이있을 것입니다.

위의 설명에서 언급했듯이 로더는 종속 모듈이나 종속 응용 프로그램에서 링커 요구 사항과 일치하는 첫 번째 클래스를 선택하므로 동일한 클래스 이름을 가진 여러 프레임 워크를 사용하는 데주의해야합니다. 모듈이로드되면 얻을 수있는 클래스가 예상 한 것과 다를 수 있습니다.