당신은 this 방법 또는 DarkDust가 말하는 하나를 사용하여 IOS SDK의 버전을 확인할 수 있습니다 컴파일 할 때 사용자가 장치를 업데이트 한 다음 마술처럼 새로운 기능을 채택하거나 더 나은 OS 통합을 얻을 수 있기 때문에 런타임에이 내용 중 일부를 처리하는 것이 일반적으로 더 좋습니다.
이렇게하는 데는 몇 가지 방법이 있습니다. 최신 SDKS에는 NS_CLASS_AVAILABLE
이 있어야합니다. 그러나 이전 SDK를 계속 지원하는 경우에는 사용하지 못할 수도 있습니다. 하지만이 목표 - C, 그래서 행운은 우리 편이다 : 클래스가없는 경우는 null를 돌려, 사용할 수있는 경우 이것이 작동
Class cls = NSClassFromString (@"NSRegularExpression");
if (cls) {
// Create an instance of the class and use it.
} else {
// Alternate code path to follow when the
// class is not available.
}
기본적으로 방법은 형식 시스템을 요구한다. 이것은 문자열이고 컴파일되기 때문에 테스트되지 않은 채로 남겨두면 다소 위험합니다.하지만 처리 할 수 있어야합니다.
는 두 곳 모두에 존재하는 클래스가 있다면, 당신은 다음과 같이 런타임에 선택 가능 여부를 테스트 할 수 있습니다
if([TheAppleClass instancesRespondToSelector:@selector(aMethod:)]) {
// invoke the inherited method
[myInstance aMethod:parameter];
}
reference1reference2
를이 여전히 OS4를 지원하는 빌드를 제공 할 수함으로써. 2 명의 사용자가 트윗 시트를 만들었지 만 업그레이 드를하면 자동으로 OS 트위터가 통합됩니다. 그러나 이전 OS 사용자와의 소통을 시작하기 전에 시장의 90 %가 업데이트 될 때까지 기다리지 않고도 필요할 때 언제든지 배포 할 수있는 단일 빌드로 모든 것을 계속 사용할 수 있습니다.
출처
2011-10-11 13:15:57
slf
가능한 복제본 : http://stackoverflow.com/questions/1864114/how-to-detect-iphone-os-version-using-macros – IronMensan