2012-04-19 3 views
0

현재 SDK 버전에서 더 이상 사용되지 않는 기능을 사용하는 경우 컴파일러에서 경고합니다. 그 반대편에있는 기능을 찾고 있습니다.iOS에서 컴파일 타임에 기능 소개를 확인하는 방법은 무엇입니까?

특정 SDK 버전에서 정의되지 않은 클래스 또는 메서드를 사용하는 경우 컴파일러에서 경고합니다.

어떻게이 기능을 사용할 수 있습니까? 나는이 같은 접두사 헤더에 정의를 넣어

#undef  __IPHONE_OS_VERSION_MAX_ALLOWED 
#define  __IPHONE_OS_VERSION_MAX_ALLOWED   40000 

__IPHONE_OS_VERSION_MAX_ALLOWED을 정의하는 시도하지만, 심지어 SDK 자체 버전 불일치 중 하나를 잡는다. (예 : UIKit)

저는 라이브러리 코드를 iOS 4.0에 대한 이전 버전과의 호환성이 필요하게 만들고 일부 자동화 된 방법으로 이전 버전과의 호환성을 확인하고자합니다. 기능 가용성 테스트로 모든 것을 해결할 수는 없지만 작업을 훨씬 쉽게 할 수 있습니다.

컴파일러로 특정 SDK 버전의 기능 가용성을 어떻게 확인할 수 있습니까?

답변

0

이것은 현재 respondsToSelector의 작업처럼 들리지만, 현재 실행중인 OS에 선택기가 있는지 확인할 수 있습니다.

하지만 앱을 미래 보장하려면 항상 지원하려는 최소 OS 버전에 대해 정의 된 최신 API로 이동해야합니다.

Here is a related question about 'respondsToSelector' that may help you out.

+0

불투명 한 질문은 유감이지만 필자가 필요로하는 것은 컴파일시 자동화 된 역 호환성 테스트입니다. 어쨌든 고마워. – Eonil

0

NSClassFromString을 사용하여 attemp를 사용하기 전에 클래스 (기능)를 확인하는 것이 필요하다고 생각합니다.

Class myClass = NSClassFromString(@"CLassThatYouWantToUse"); //get the class object 
if (myClass != nil) 
    { 
     // The device will support this class.. so carry on... 
    } 
else 
     { 
      // The device doesn't support this class. 
     } 
관련 문제