2011-10-28 4 views
6

मैं न्यूज़स्टैंड को एक नए आईओएस एप्लिकेशन में एकीकृत करने की जांच कर रहा हूं, और जानना चाहता हूं कि मैं ऐसा कैसे कर सकता हूं जो ऐप को उन डिवाइसों पर चलाने की अनुमति देगा जो आईओएस 5 में माइग्रेट नहीं हुए हैं।पीछे की संगतता को तोड़ने के बिना न्यूज़स्टैंड को एकीकृत करना

किसी को भी मुझे कैसे वास्तुकार पर कुछ प्रतिक्रिया इस संभाल करने के लिए एक आवेदन दे सकते हैं?

मैं इसे विभिन्न लक्ष्यों और स्रोत फ़ाइलों के सेट के साथ एक एकल आवेदन करना संभव है पता है, लेकिन मैं के रूप में संभव के रूप में एकीकृत codebase रखना पसंद करेंगे, और न्यूज़स्टैंड के लिए परीक्षण गतिशील सुविधाएँ।

उत्तर

5

आप सभी यह करने के पहले करने के लिए है क्या कमजोर लिंक NewsstandKit ढांचे के लिए अपने आवेदन। इससे बचा जाता है कि आईओएस संस्करण < 5 वाला डिवाइस गायब पुस्तकालयों के कारण क्रैश हो जाएगा।

तो रनटाइम पर आप एन.के. तरीकों बुला और एन.के. वर्ग है जो स्पष्ट रूप से आप NSClassFromString() या अन्य Obj सी क्रम सुविधाओं की तरह तरीकों कि करने के लिए अनुमति का उपयोग कर सकते आईओएस < 5. में उपलब्ध नहीं हैं इस तरह के मामले में की चर्चा करते हुए बचने की जरूरत है गतिशील रूप से इन सुविधाओं के अस्तित्व का पता लगाएं।

एक सिफारिश यह है कि मैं इस तरह के मामले में यह कर सकते हैं एक पूर्व संकलक निर्देश है कि आप संकलन स्तर पर सभी न्यूज़स्टैंड सामान को अलग करने के लिए अनुमति देता है प्रदान करना है। इस तरह आप एसडीके 4 का उपयोग करके संकलित करने का प्रयास कर सकते हैं (यदि आपके पास है) और कंपाइलर त्रुटियों या चेतावनियों के लिए देखें।

उदा। अगर आप अपने Prefix.pch में इस


#define WILL_USE_NK 

की तरह एक परिभाषा जोड़ने तो आप इस तरह से सभी एन.के. संदर्भ ब्रैकेट कर सकते हैं:


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

बाद में, जब आप SDK4 के साथ एप्लिकेशन को संकलित कर देगा आप इस रखना परिभाषा इसलिए आपके पास आईओएस 4 उपकरणों (जो आप परीक्षण कर सकते हैं) के लिए एक असली एसडीके 4 संकलन मान्य होगा और आप सुनिश्चित होंगे कि आपके सभी एनके संदर्भ आईओएस 4 ऐप द्वारा उपयोग नहीं किए जाते हैं। तो फिर तुम इस परिभाषा #undef और (जाहिर है कम से कम लक्ष्य के रूप में कुछ iOS 4.x रखने) एप्लिकेशन को वितरित करने से पहले SDK5 साथ संकलन चाहिए।

बेशक इस तरह से आप सभी संभावित गलतियों के खिलाफ सुरक्षित नहीं हैं लेकिन कम से कम आपने एनके संदर्भों को अलग कर दिया है।

जहां तक ​​एप्लिकेशन के व्यावसायिक तर्क के बारे में बेहतर रणनीति है, यह आपके लिए निर्भर है: यह एक आसान काम नहीं है क्योंकि न्यूज़स्टैंड पृष्ठभूमि पहलुओं जैसे कई पहलुओं का ख्याल रखता है। पत्रिका मॉडल के अलावा अब आपके मौजूदा मॉडल और एनकेआईएसएस विशेषताओं के बीच विभाजित है, लेकिन ये सभी कार्यान्वयन विवरण हैं जो इस विशिष्ट प्रश्न से आगे जाते हैं।

+0

हाय Viggio, यह एक बहुत अच्छा विचार है, धन्यवाद। इससे मुझे अपने कोड को एकजुट रखने की अनुमति मिलती है, जबकि उन टुकड़ों को अलग करते हुए जो पीछे की संगतता के मुद्दों का कारण बन सकते हैं। बहुत बहुत धन्यवाद! – James

संबंधित मुद्दे