Баспа материалының кері үйлесімділігін бұзбай интеграциялау

Мен Newsstand-ді жаңа iOS қосымшасына біріктіруді зерттеп жатырмын және оны iOS 5-ге көшпеген құрылғыларда қолдануға мүмкіндік беретін-етпейтінін білгім келеді.

Қолданбаға мұны қалай реттеуге болатынын маған қандай да бір пікір қалдыра алады ма?

Мен әртүрлі мақсаттар мен бастапқы файлдар жиынтығы бар бірыңғай қолдануға болатындығын білемін, бірақ кодекс базасын мүмкіндігінше бірыңғай етіп ұстауды және Newsstand мүмкіндіктерін динамикалық түрде сынауды қалаймын.

6

1 жауаптар

What you have to first of all it to weak-link your application to the NewsstandKit framework. This avoids that a device with an iOS version < 5 will crash due to the missing libraries.

Then at runtime you need to avoid calling NK methods and referring to NK classes which obviously are not available in iOS < 5. In such case you can use methods like NSClassFromString() or other obj-c runtime features that allow to detect dynamically the existence of these features.

Мұндай жағдайда оны жасауға болатын ұсыныс - барлық басылымдар материалдарын компиляция деңгейінде оқшаулауға мүмкіндік беретін алдын ала компилятор директивасын ұсыну. Осылайша SDK 4-ді (егер ондай болса) компиляциялауға тырысуға болады және компиляторлық қателер немесе ескертулерді көре аласыз.

Мысалы: Егер сіз Prefix.pch-ге осы сияқты анықтаманы қоссаңыз


#define WILL_USE_NK

онда сіз барлық NK сілтемелерін осылай жасай аласыз:


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

Кейінірек, сіз SDK4-пен бағдарламаны құрастырған кезде сіз бұл анықтаманы сақтайсыз, сондықтан iOS4 құрылғылары үшін жарамды нақты SDK4 жинағы болады (сынауға болатын) және барлық NK сілтемелерінің iOS4 қолданбасы пайдаланатынына сенімді боласыз. Одан кейін, бұл анықтаманы # таратып, SDK5-ге (әрине, кейбір iOS 4.x-ні минималды мақсатта ұстау керек) компиляциялау керек.

Әрине, сіз барлық қателіктерден қорғалмағансыз, бірақ кем дегенде Сіз Н.К.

Қолданбаның іскери логикасы туралы жақсы стратегияға келетін болсақ, бұл сіз үшін: бұл оңай емес, себебі Newsstand әртүрлі аспектілерді қамтып жатыр. Сонымен қатар, журнал моделі сіздердің қазіргі модельдер мен NKIssue функциялары арасында бөлінеді, бірақ бұл барлық нақты сұрақтың шеңберінен шыққан іске асыру туралы мәліметтер.

5
қосылды
Hi Viggio, бұл тамаша идея, рахмет. Бұл менің кодты біріктіруге мүмкіндік береді, сонымен қатар кері үйлесімділік мәселелеріне әкелуі мүмкін бөліктерді оқшаулау. Үлкен рахмет!
қосылды автор James, көзі