2012-01-31 2 views
1

I가 다음 코드MapKit repsondsToSelector 4.3.3

BOOL ios5 = [mapview respondsToSelector:@selector(setUserTrackingMode:animated:)]; 
if(ios5) 
{ 
    if(compass && tracking) 
     [mapview setUserTrackingMode:MKUserTrackingModeFollowWithHeading animated:YES]; 
    else if (tracking) 
     [mapview setUserTrackingMode:MKUserTrackingModeFollow animated:YES]; 
    else 
     [mapview setUserTrackingMode:MKUserTrackingModeNone animated:YES]; 
} 
else 
{ 
    // Do it the version 4.0 way 
} 

그것은 내가 나침반을 가지고 나에 플래그를 추적 여부에 따라 예상 5.

아이폰 OS에서 사용자의 위치를 ​​추적으로 작동

그러나 테스트중인 다른 장치 인 버전 4.3.3에서도 작동합니다. 선택기에 응답하는 것처럼 보이고 실제로 iOS 5에서와 같이 작동합니다.

기능은 iOS 4에 있지만 공개되지 않았기 때문에 이러한 이유로 앱이 거부 될 위험이 있습니까?

누구든지이 문제에 대해 의견을 개진 할 수 있습니까? 감사합니다. 도미

답변

1

저는 사용하기 전에 기능을 먼저 확인하여 올바른 작업을 수행하고 있다고 생각합니다. 실행중인 버전은 상관 없으며 그 API는 이며 이미이 문서화되어 있습니다. 이렇게하면 4.3 사용자에게 이전 버전과의 호환성을 제공하게됩니다.

+0

하지만 기능은 iOS 5 이상 사용자 만 사용할 수 있다고 생각 했습니까? API 문서는 버전 5에서 소개되었다고 말합니다. – d0n13

+0

문서화 된 API를 사용 중이며 IOS 5.0이없는 사용자를 보호하기 위해'respondsToSelector :'체크를하고 있습니다. 당신은 여기서 좋은 시민이되고 있습니다.'respondsToSelector'가 5.0보다 낮은 버전에서 작동한다면 당신의 책임이 될 것이라고 저는 믿지 않습니다. 애플이 다르게 말하면 나는 부적절하다고 생각할 것이다. 왜냐하면 그들이 어떤 문서에서도 장치 버전을 확인하도록 권고하지 않았기 때문이다. 그러나 그들은 대신에 기능을 확인해야한다고 우리에게 말하고있다. –

+0

감사합니다. eruainon – d0n13