2012-03-04 5 views
2

iOS 4 및 5에 관한 질문이 있습니다. 정말 혼란스럽고 다른 누군가가 해결해주기를 바랍니다.iOS 4 및 iOS 5 이전 버전과의 호환성

내 응용 프로그램에 iOS 5 SDK를 사용하고 있습니다. Apple에서 제공하는 iOS 5 Twitter 통합을 사용하는 경우 iOS 4가 설치된 iPhone에서 실행됩니까?

이전 버전과의 호환성이 있습니까?

Twitter를 예로 들었지만 이전 버전과의 호환성은 실제로 iOS 5에서 작동합니까?

답변

10

따라서 충돌없이 iOS 4를 실행하는 기기에서 실행할 수 있습니다. 예 : iOS 4가 설치된 iPhone에서 실행됩니다.

앱이 iOS 5 기기에서 앱을 실행할 때 Twitter API가 사용되도록 로직을 구현해야합니다. 앱이 iOS 4 기기에서 실행 중일 때 이 아닌을 조건부로 선택하면 Twitter API를 사용할 수 있습니다.

대신 다른 Twitter 라이브러리 (예 : MGTwitterEngine 또는 자신의 것)를 사용하거나 해당 사용자의 Twitter 기능을 제외 할 수 있습니다.

TWRequest 클래스가 있는지 여부를 확인하려면 NSClassFromString을 사용하십시오.

에는 이전 버전과의 호환성이 없음을 의미
Class twRequestClass = NSClassFromString(@"TWRequest"); 
if (twRequestClass == nil) { 
    // TWRequest does not exist on this device (running iOS version < 5.0) 
    // ... do something appropriate ... 
} else { 
    TWRequest *twRequest = [[twRequestClass alloc] init]; 
    //^I didn't look up the proper initializer, so you should change that line if necessary 
    // ... 
} 
+1

매우 잘 설명되어 있습니다. – matt

1

아니요, iOS5에서 사용할 수있는 Twitter API를 사용하는 경우 iOS4에서 실행할 수 없습니다.

iOS4에서 앱을 실행하면 시스템에 API가 제공되지 않기 때문입니다.

설명서를 확인하면이 클래스/API를 사용할 수있는 곳의 iOS 버전을 확인할 수 있습니다. 난이 도움이되기를 바랍니다 enter image description here

..이 아이폰 OS 4를 실행하는 장치에서 실행할 수 있도록, 제대로 응용 프로그램을 설정 한 경우

+0

. :( – shajem

+0

바로 ... 당신은 단지 iOS5를 사용할 수 또는 iOS4를 실행하는 장치에 더 높은 API를 실행할 수 없습니다. – samfisher

+0

를 이제이 기능이 5.0 이하를 사용할 수없는 있지만, 것을 그것이 더 낮은 배포 대상을 가질 수 없다는 것을 의미하지는 않습니다.짧게 말해서 내 트위터 버튼은 iOS 5.0 이상> 트위터를 시작하면 UIAlertView는 5.0 이상에서만 기능을 사용할 수 있다고 말합니다. –

3

,이 충돌합니다. 사용 가능한 메소드/기능에 액세스하려고하기 때문입니다. 이 주위에 얻을 수있는 방법은

당신은 또한 사용하여 버전을 확인 할 수있는 기능이

if(NSClassFromString(@"UIPopoverController")) { 
// Do something 
} 

사용하여 사용할 수 있는지 확인하기 위해 (팝 오버 컨트롤러 그냥 예입니다)입니다

float version = [[[UIDevice currentDevice] systemVersion] floatValue]; 

그리고 버전에 따라 특정 코드가 실행됩니다 (예 : iOS 5의 경우 트위터를 실행하고 다른 경우 다른 작업)

+3

'systemVersion'는'float'로 parseable 값을 반환하는 것이 보장되지 않습니다. 실제로는 현재 해석 가능한 값을 반환하지 않습니다. –

3

사용자가 사용하는 iOS 버전에 따라 ifs를 변경하십시오. 당신은 조금 만들 필요가 Exemple가,에서 iOS 5에서 거기 UI의 대부분을 수정하는 모양 API는 아니지만 아이폰 OS 4, 그래서 그런 경우 : 앱 제대로를 설정 한 경우

// not supported on iOS4 
UINavigationBar *navBar = [myNavController navigationBar]; 
if ([navBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]) 
{ 
    [navBar setBackgroundImage:[UIImage imageNamed:@"bg.jpg"] forBarMetrics:UIBarMetricsDefault]; 
} 
관련 문제