6

Mac OS X 10.7 용 응용 프로그램을 빌드 할 때 하위 호환성을 구현하는 가장 좋은 방법은 무엇입니까?Mac OS X App 역 호환성 10.6 및 10.7 NSPopovers 사용 중

클라이언트가 10.7 일 때 NSPopover를 사용하고 클라이언트가 10.6 일 때 NSMenu를 사용하는 응용 프로그램이 있습니다. 문제는 10.6 컴퓨터에서 앱을 시작할 때 앱이 "기호를 찾을 수 없음"예외와 충돌하여 "012KROBJC $ _NSPopover를 AppKit에서 찾을 수 없음"을 말합니다. 새로운 기능을 사용하려면 응용 프로그램 전체에서 ID를 사용해야합니까?

답변

2

할 수 있습니다 기능 NSClassFromString()는 예를 들어 인스턴스를 만드는 데 사용할 수와이 클래스의 객체를 반환를 사용하여 NSPopover의 클래스 객체를 얻을 수

id thePopover = [[NSClassFromString(@"NSPopover") alloc] init]; 

또 다른 가능성은 두 개의 별도의 펜촉 파일 하나를 가지고하는 것입니다 10.6과 10.7의 경우, 펜촉은 완전한 인터페이스 일 필요는 없으며, NSPopover를 포함하는 부분 만 런타임에 적절한 nib 파일을로드 할 수 있습니다.