2012-09-17 16 views
14

के बीच कोड साझा करने के लिए सबसे अच्छा अभ्यास मैं मौजूदा ओएसएक्स ऐप का आईओएस संस्करण बना रहा हूं और सोच रहा हूं कि दोनों के बीच कोड साझा करने के लिए सर्वोत्तम अभ्यास क्या हैं। प्रश्न में कोड केवल नींव ढांचे और स्क्लाइट गतिशील पुस्तकालय पर निर्भर करता है, इसलिए इसे दोनों प्लेटफॉर्म पर संकलित और ठीक करना चाहिए।ओएसएक्स और आईओएस ऐप

  1. और OSX और एक आईओएस लक्ष्य के साथ एक परियोजना बनाएँ, उचित रूप में प्रत्येक लक्ष्य के लिए स्रोत फ़ाइलें जोड़ें:

    मुझे ऐसा लगता है वहाँ तीन संभावित विकल्प हैं।

  2. ओएसएक्स और आईओएस ऐप्स के लिए दो अलग-अलग परियोजनाएं बनाएं, वर्कस्पेस में एक साझा स्थान में साझा कोड डालें और इसे दोनों परियोजनाओं के संदर्भ के रूप में जोड़ें।
  3. तीन परियोजनाएं बनाएं: ओएसएक्स ऐप, आईओएस ऐप और एक ओएसएक्स और आईओएस लक्ष्यों के साथ एक साझा स्थैतिक पुस्तकालय; प्रत्येक पुस्तकालय लक्ष्य को संबंधित एप्लिकेशन में जोड़ें।

क्या कोई कारण है कि उपरोक्त दृष्टिकोणों में से एक दूसरे के मुकाबले बेहतर हो सकता है? यदि नहीं, विकल्प 2 अब तक सबसे सरल प्रतीत होता है।

उत्तर

4

मैंने यह किया है और तीसरा दृष्टिकोण लिया है; एक अलग स्थैतिक पुस्तकालय। जिस दृष्टिकोण को मैंने चुना वह कारण था क्योंकि इसे अपने गिट रेपो के भीतर रखा जा सकता है और बाद में अन्य परियोजनाओं के साथ साझा किया जा सकता है।

हालांकि, आप जिस प्लेटफॉर्म को संकलित कर रहे हैं उसका निर्धारण करना एक बात है।

#import <TargetConditionals.h> 

#if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR 
#define SYSINFO_OSX 1 
#else 
#define SYSINFO_IOS 1 
#endif 

यह टुकड़ा अपने स्वयं के हेडर फाइल में होना चाहिए: मैं निम्नलिखित कोड टुकड़ा जो SYSINFO_IOS या SYSINFO_OSX जो तब पुस्तकालय स्रोत/हेडर फाइल के भीतर उपयोग किया जाता है परिभाषित करता है का उपयोग करते हुए इस हल किया।

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