Інтэграцыя Прэсы, не парушаючы зваротную сумяшчальнасць

Я расследуе інтэграцыі Прэсу ў новае прыкладанне IOS, і вы хочаце ведаць, ці магу я зрабіць гэта такім чынам, што будзе па-ранейшаму дазваляе з дадаткам працаваць на прыладах, якія ня мігравалі прашыўкай 5.

Можа хто-небудзь даць мне некаторую зваротную сувязь аб тым, як архітэктар прыкладання справіцца з гэтым?

Я ведаю, што гэта магчыма, каб мець адно прыкладанне з рознымі мэтамі і наборамі зыходных файлаў, але я б аддаў перавагу, каб трымаць кодавыя ў уніфікаваны, наколькі гэта магчыма, і тэст на Прэсу асаблівасці дынамічна.

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 вы трымаеце гэта вызначэнне, так што вы будзеце мець рэальную SDK4 кампіляцыю сапраўдная для прылад iOS4 (якія вы можаце праверыць), і вы будзеце ўпэўнены, што ўсе вашыя спасылкі NK не выкарыстоўваюцца прыкладаннямі iOS4. Тады вы павінны #undef гэтага вызначэння і кампіляваць з SDK5 (вядома, захоўваючы некаторыя iOS 4.x, як мінімум, мэта), перш чым распаўсюджваць прыкладання.

Вядома, у гэтым выпадку вы не абароненыя ад усіх магчымых памылак, але, па меншай меры, вы вылучылі спасылкі NK.

Што тычыцца лепшай стратэгіі пра бізнес-логіцы прыкладання, гэта залежыць ад вас: гэта простая задача не так як цяпер Прэсе клапоціцца пра многіх аспектах, фон спампаваць, як і гэтак далей. Акрамя таго, мадэль часопіса цяпер падзелены паміж існуючай мадэллю і асаблівасцямі NKIssue, але ўсё гэта дэталі рэалізацыі, якія выходзяць за рамкі гэтага канкрэтнага пытання.

5
дададзена
Прывітанне Viggio, гэта выдатная ідэя, дзякуй. Гэта дазваляе мне трымаць мой код уніфікаваны, у той час як ізалюючы часткі, якія могуць выклікаць праблемы сумяшчальнасці ў зваротным кірунку. Вялікі дзякуй!
дададзена аўтар James, крыніца