2011-10-28 2 views
6

뉴스 스탠드를 새로운 iOS 응용 프로그램에 통합하는 방법을 조사 중이며 iOS 5로 이전하지 않은 장치에서 앱을 실행할 수 있는지 여부를 알고 싶습니다.이전 버전과의 호환성을 유지하면서 뉴스 스탠드 통합

아무도 나를 처리 할 응용 프로그램을 설계하는 방법에 대한 의견을 줄 수 있습니까?

소스 파일의 타겟과 세트가 다른 단일 응용 프로그램을 사용할 수는 있지만 가능하면 통합 된 코드베이스를 유지하고 Newsstand 기능을 동적으로 테스트하는 것이 좋습니다.

답변

5

먼저 애플리케이션을 NewsstandKit 프레임 워크에 약하게 연결해야합니다. 이렇게하면 누락 된 라이브러리로 인해 iOS 버전 < 5가있는 장치가 중단되는 것을 방지 할 수 있습니다.

런타임시에는 NK 메서드를 호출하거나 iOS <에서 사용할 수없는 NK 클래스를 참조하지 않아야합니다. 5. 그런 경우 NSClassFromString() 또는 다른 obj-c 런타임 기능과 같은 메서드를 사용할 수 있습니다. 이러한 기능의 존재를 동적으로 감지합니다.

이렇게 할 수있는 권장 사항은 컴파일 레벨에서 모든 Newsstand 관련 자료를 격리 할 수있는 사전 컴파일러 지시문을 제공하는 것입니다. 이 방법으로 SDK 4 (컴파일 된 경우)를 사용하여 컴파일하고 컴파일러 오류 또는 경고를 확인할 수 있습니다.

예. 이


#define WILL_USE_NK 

처럼 Prefix.pch에 정의를 추가하는 경우 당신은이 방법으로 모든 NK 참조를 괄호 수 있습니다

나중에

#ifdef WILL_USE_NK 
... your NK statements go here ... 
#endif 

당신이 SDK4로 응용 프로그램을 컴파일 할 때, 당신이 계속 정의를 사용하면 테스트 할 수있는 iOS4 장치에 유효한 실제 SDK4 컴파일을 갖게되며 모든 NK 참조가 iOS4 앱에서 사용되지 않게됩니다. 그런 다음 앱을 배포하기 전에이 정의를 #undef하고 SDK5로 컴파일해야합니다 (물론 iOS 4.x를 최소 대상으로 유지해야합니다).

물론 이런 식으로 모든 가능한 실수로부터 보호받을 수는 없지만 최소한 NK 참조를 분리했습니다.

응용 프로그램의 비즈니스 논리에 관한 더 나은 전략에 관한 한, 이것은 당신에게 달려 있습니다. Newsstand는 백그라운드 다운로드와 같은 여러 측면을 처리합니다. 잡지 모델은 현재 기존 모델과 NKIssue 기능으로 나뉘어져 있지만,이 모든 것은이 특정 질문을 뛰어 넘는 구현 세부 사항입니다.

+0

안녕하세요 Viggio, 좋은 생각입니다. 감사합니다. 이렇게하면 하위 호환성 문제가 발생할 수있는 부분을 격리하면서 코드를 통일하게 유지할 수 있습니다. 매우 감사합니다! – James

관련 문제