2009-08-09 14 views
9

मैं जीएनयूस्टेप का उपयोग कर विंडोज और लिनक्स पर इसका उपयोग करने के इरादे से कोको ऐप पर काम कर रहा हूं। मैं अब तक उद्देश्य-सी 2.0 सुविधाओं से परहेज कर रहा हूं, लेकिन मुझे कम से कम गुणों का उपयोग करना शुरू करना अच्छा लगेगा। Google मुझे क्या कहता है (हालांकि मुझे इस विषय पर ज्यादा परेशानी हो रही है) वर्तमान में, कोई उद्देश्य-सी 2.0 विशेषताएं जीएनयूस्टेप के साथ काम नहीं करती हैं। क्या किसी को पता है कि योजना जीएनयूस्टेप के लिए @property और @ सिंथेसाइज़ का समर्थन करने के लिए है?क्या जीएनयूस्टेप @property और @ सिंथेसाइज का समर्थन करेगा?

मुझे यह भी आश्चर्य है कि क्या "विस्तार" करने के लिए कोई अच्छी रणनीति है या नहीं? मैं निश्चित रूप से एक प्रोग्राम की कल्पना कर सकता हूं जो @property और @synthesize का उपयोग करके कोड का विस्तार कर सकता है जो किसी भी उद्देश्य-सी 2.0 सुविधाओं का उपयोग नहीं करता है, लेकिन मुझे चिंता है कि ऐसी चीज की ज्यादा मांग नहीं है, इसलिए मैंने शायद ' एक खोजने में सक्षम नहीं है।

क्या आपको लगता है कि एक अच्छा मौका है कि जीएनयूस्टेप अगले वर्ष या तो @property और @ सिंथेसिस का समर्थन करेगा?

+0

की "ऐसा मत करो!" विषय पर: यह एक दिलचस्प स्थिति है -, मैं फाउंडेशन के बाहर ज्यादा की जरूरत नहीं है और अधिकांश कोड एक्सएमएल पढ़ने और लिखने के साथ-साथ मेरे स्वयं के वर्गों के बहुत सारे हैं। इस प्रकार, मुझे लगा कि जीएनयूस्टेप के साथ संगत रखने के लिए यह एक बड़ा सौदा नहीं होगा। मेरे उपयोगकर्ताओं को रनटाइम इंस्टॉल करने के लिए, मैं एक अच्छी तरह से लिखित इंस्टॉलर के साथ मुकाबला करने की उम्मीद कर रहा था जो उनके लिए सब कुछ संभालता है। (हालांकि, मुझे उन दो बिंदुओं पर आपके किसी भी आपत्ति को सुनने में दिलचस्पी है।) – andyvn22

+1

यदि कोई ऐसा करने का प्रयास कर रहा है: मैं कभी भी ओएनजे-सी 2.0 जीएनयूस्टेप के साथ काम करने में सक्षम नहीं था, लेकिन ऐसा लगता है कि कोकोट्रॉन (हालांकि आपको संकलन के लिए मैक तक पहुंच की आवश्यकता होगी)। – andyvn22

उत्तर

12

यह कुछ महीने देर हो चुकी है, लेकिन जवाब हाँ है; जीएनयूस्टेप उद्देश्य-सी 2.0 विशेषताओं (साथ ही ब्लॉक) का समर्थन करेगा। वर्तमान में, सब कुछ कम या ज्यादा लागू किया गया है, लेकिन परीक्षण और डिबगिंग की आवश्यकता है। इन सुविधाओं को जीसीसी की बजाय क्लैंग की आवश्यकता है, और वर्तमान में आपको ट्रंक संस्करण का उपयोग करने की आवश्यकता है।

अधिक जानकारी के लिए इस सूत्र में देखें डेविड Chisnall के विवरण: http://groups.google.com/group/gnu.gnustep.discuss/browse_thread/thread/b0a5fa4e3be71bb1#

+0

वह लिंक अब मृत है, लेकिन यहां एक ही जानकारी के साथ एक अलग स्रोत है: http://wiki.gnustep.org/index.php/ObjC2_FAQ – andyvn22

2

मुझे यकीन नहीं है कि उद्देश्य-सी का जीएनयूस्टेप कार्यान्वयन एक्सेसर/म्यूटेटर संश्लेषण में ऐप्पल के नेतृत्व का पालन करेगा या नहीं, लेकिन यदि आप मैक, विंडोज और लिनक्स के लिए ऐप बनाने की कोशिश कर रहे हैं, तो संभवतः जीएनयूस्टेप सबसे अच्छा नहीं है चुनाव। कोको से GNUstep तक कोड को पोर्ट करना बहुत आसान होना चाहिए (और आप अपनी संपत्ति घोषणाओं को परिवर्तित करने के लिए एक मैक्रो भी लिख सकते हैं), लेकिन बहुत कम लोग लिनक्स पर जीएनयूस्टेप का उपयोग करते हैं और यहां तक ​​कि विंडोज़ पर भी कम। मुझे एक क्रॉस-प्लेटफार्म ओपनस्टेप कार्यान्वयन के विचार से प्यार है, लेकिन फिलहाल, यह वास्तव में व्यावहारिक नहीं है, गोद लेने के अनुसार।

3

नहीं, मुझे नहीं पता कि संपत्तियों का समर्थन करने की योजना है या नहीं, लेकिन यदि जीएनयूस्टेप व्यवहार्य रहने की योजना बना रहा है (भले ही केवल सीमित डिग्री में जो अब है) यह प्राथमिकता होनी चाहिए। जब तक जीएनयूस्टेप उद्देश्य-सी 2.0 सुविधाओं को अपनाने का फैसला नहीं करता है, तब तक इसके बीच का अंतर और ऐप्पल के कार्यान्वयन से यह अच्छा क्रॉस-प्लेटफ़ॉर्म कोड लिखना मुश्किल हो जाएगा। (यह पहले से ही अधिकांश डेवलपर्स के लिए सीमा रेखा व्यर्थ है।)

हालांकि मैं आमतौर पर उन उत्तरों से नफरत करता हूं जो अनिवार्य रूप से कहते हैं, "ऐसा मत करो, यह एक बुरा विचार है", मुझे इस पर @ जोनाथन से सहमत होना है, खासकर दृष्टिकोण से व्यावहारिकता का। यद्यपि कोड क्रॉस-प्लेटफॉर्म को संकलित कर सकता है, यदि उपयोगकर्ताओं को आपके ऐप का उपयोग करने के लिए रनटाइम इंस्टॉल करना है, तो संभावना है कि कोई आपके ऐप का उपयोग करेगा, वह काफी कम हो गया है।

This SO answer इसे अच्छी तरह से बताता है। मैं इसे पढ़ने और अपना निष्कर्ष निकालने का सुझाव देता हूं।

यह भी विचार है कि "objective-c" टैग 3280 से अधिक सवाल है लायक है, जबकि "gnustep" 9. है मैं यह नहीं कह रहा हूँ कि प्रश्न मात्रा गुणवत्ता का एक मीट्रिक है, लेकिन यह गतिविधि और ब्याज के साथ एक समानांतर है, और बहुत संभव है इस साइट पर जीएनयूस्टेप में विशेषज्ञता के साथ कम संख्या में लोग। इस प्रकार, यदि आप जिस मार्ग पर विचार कर रहे हैं उसे नीचे जाने का विकल्प चुनते हैं तो आपको अच्छी मदद मिल सकती है।

वैसे, नए से बचने की मानसिकता संगतता के नाम पर विशेषताएं "कम से कम आम संप्रदाय" व्यवहार है, जो लंबे समय तक आपके कोड को कम सुरुचिपूर्ण और कम "फीचरफुल" बनाती है। यह केवल 10.2 या 10.3 पर उपलब्ध एपीआई के साथ कोडिंग के समान है - किसी भी हालिया ओएस एक्स या आईफोन डेवलपर आपको बताएगा कि वे चाहते हैं शांत नई सुविधाओं का ई लाभ, और पिछले सीमाओं से बाधित नहीं है। इन दिनों, नए ऐप्स को हमेशा 10.5 की आवश्यकता होती है - पुराने संस्करणों के लिए समर्थन स्थापित सॉफ़्टवेयर की अधिक विशेषता है जो पिछड़ा संगत है, और कई ऐप्स पुराने ओएस के समय के साथ भी ड्रॉप करते हैं।

यदि आप एक आवेदन बेचने पर विचार कर रहे हैं, तो केवल जीएनयूस्टेप-संगत एपीआई का उपयोग करके आपके बाजार को गंभीर रूप से सीमित कर दिया जाएगा, और पॉलिश और कार्यक्षमता के स्तर सहित मौलिक तरीकों से अपने ऐप को सीमित भी कर सकते हैं, जिसे आप प्राप्त करने की उम्मीद कर सकते हैं। यहां तक ​​कि यदि ऐप वाणिज्यिक नहीं होगा, तो आमतौर पर दी गई प्लेटफॉर्म के लिए सबसे अच्छी फिट भाषा और ढांचे का उपयोग करने के लिए योग्यता होती है।यदि आप वास्तव में क्रॉस-प्लेटफ़ॉर्म समर्थन की तलाश में हैं, तो जावा आपको कम दिल की धड़कन के करीब ले जाने की संभावना है। (जावा निश्चित रूप से मेरी पसंदीदा भाषा नहीं है, और यह कोको नहीं है, लेकिन यह कई चीजें अच्छी तरह से करता है।) हालांकि ग्राहकों और प्लेटफार्मों में भाषा संस्करण की एक ही समस्या है, कम से कम क्रॉस-प्लेटफ़ॉर्म होने के लिए डिज़ाइन किया गया है, और सभी उपभोक्ता प्लेटफार्मों में ठोस जावा समर्थन है।

+0

आआंड अनिवार्य यादृच्छिक डाउनवॉटर फिर से हमला करता है ... –

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