2012-07-11 11 views
18

मैं एनएसओब्जेक्ट्स इत्यादि का उपयोग करते समय थोड़ी देर के लिए ऑब्जेक्टिव-सी कोको में प्रोग्रामिंग कर रहा हूं। मुझे लगता है कि एक और ढांचा है: कोरफाउंडेशन। जैसा कि मैंने इसे देखा है, ऐसा लगता है कि यह सी-स्टाइल फ्रेमवर्क है।CoreFoundation ढांचे का उद्देश्य क्या है?

तो मेरे पास कुछ जिज्ञासा है जिन्हें मैं स्पष्ट करना चाहता हूं। मैंने गुमराह किया है लेकिन कोई सीधा जवाब नहीं मिला है।

  1. कोरफाउंडेशन ढांचे का उद्देश्य क्या है?
  2. क्या कोको फ्रेमवर्क पहले से ही आवश्यक चीज़ों को प्रदान नहीं करता है?
  3. क्या कोरफाउंडेशन फ्रेमवर्क कोई लाभ प्रदान करता है जो कोकोफ्रेमवर्क प्रदान नहीं करता है?

ये मेरे कुछ प्रश्न हैं। अगर कोई उत्तर दे सकता है, या मुझे इसके बारे में पढ़ने के लिए संसाधन प्रदान कर सकता है, तो यह बहुत अच्छा होगा। मैं सोच रहा हूं कि ढांचे के बारे में और सीखने के लायक हैं।

उत्तर

17

इतिहास: फाउंडेशन की तारीख ~ 1 99 3/1 99 4 है और इसमें एपीआई ने नेक्स्ट द्वारा प्रकाशित ओपनस्टेप एपीआई का हिस्सा थे।

कोरफाउंडेशन ढांचे का उद्देश्य क्या है?

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

सीएफलाइट एक हल्के वजन, पोर्टेबल, शुद्ध-सी (आईआईआरसी) संस्करण है।

क्या कोको फ्रेमवर्क पहले से ही आवश्यक चीज़ों को प्रदान नहीं करता है?

अधिक या कम। और, निश्चित रूप से आईओएस या ओएस एक्स पर जीयूआई अनुप्रयोगों के निर्माण के लिए मोर्सो।

क्या कोरफाउंडेशन फ्रेमवर्क कोई लाभ प्रदान करता है कोकोफ्रेमवर्क प्रदान नहीं करता है?

कई, लेकिन आम तौर पर कम सादगी और नाजुकता में वृद्धि की लागत पर।

उदाहरण के लिए, सीएफ संग्रह आपको पूरी तरह से अनुकूलित करने की अनुमति देता है कि स्मृति कैसे प्रबंधित की जाती है और वस्तुओं की पहचान की जाती है; आप कस्टम आवंटन/मुफ्त/हैशिंग/तुलना हुक प्रदान कर सकते हैं। इसके माध्यम से, आप सीएफ संग्रह में गैर-उद्देश्य-सी प्रकारों को "आसानी से" encapsulate कर सकते हैं।

+0

तो, ऐसा लगता है कि कोर फाउंडेशन एक एपीआई प्रदान करता है जिसे शुद्ध सी कोड द्वारा बुलाया जा सकता है, कोर फाउंडेशन का उपयोग करके उत्पन्न होने वाले किसी भी निष्पादन योग्य में आपके सी कोड प्लस ऑब्जेक्टिव-सी रनटाइम लाइब्रेरी (libobjc.dylib) शामिल है, और संचालित होता है (शुरू होता है , आदि) गतिशील रूप से जुड़े संदर्भों के साथ एक उद्देश्य-सी शैली निष्पादन योग्य के रूप में। – Colin

2

कोर फाउंडेशन फ्रेमवर्क समान कार्यक्षमता प्रदान करता है जैसे फाउंडेशन फ्रेमवर्क करता है लेकिन ओबीजे-सी के बजाय सी में होता है ताकि इसका उपयोग सी फ्रेमवर्क के साथ किया जा सके।

आप अपने आस-देखो, तो है कि एप्पल मुख्य ग्राफ़िक्स, मुख्य ऑडियो, पता पुस्तिका, आदि

+1

असल में, सीएफ में उद्देश्य-सी में लागू बड़े हिस्से हैं और कुछ एपीआई उनके उद्देश्य-सी समकक्षों के चारों ओर रैपर हैं, अन्य तरीकों से नहीं ... – bbum

16

CoreFoundation फाउंडेशन को सिर्फ एक सी-आधारित विकल्प की तुलना में अधिक है जैसे कुछ सी व्यवस्थाएं है देखेंगे। रास्ते में सरलीकृत शब्दों में, फाउंडेशन अनिवार्य रूप से कोरफाउंडेशन है, क्योंकि एक दूसरे के शीर्ष पर बनाया गया है। फाउंडेशन में कई कक्षाएं अपने कोरफॉउंडेशन समकक्ष के आस-पास हल्के वजन वाले सी सी रैपर हैं, जो टोल-फ्री ब्रिजिंग काम करता है (उदा। सीएफस्ट्रिंग और एनएसएसटींग)।

अधिक इतिहास के लिए, और एक और अधिक तकनीकी स्पष्टीकरण, this article देखें।

यदि आप वास्तव में कोरफाउंडेशन स्रोत को पढ़ना चाहते हैं, तो ऐप्पल के "सीएफलाइट" ढांचे के कई संस्करण संदर्भ here के लिए उपलब्ध हैं।

+0

उत्कृष्ट लिंक के लिए +1। लेकिन, मैं दो उत्तरों का चयन नहीं कर सकता। बीबीएम ने 3 चिंताओं का उत्तर दिया। –

+1

@ user76859403 कोई समस्या नहीं, और bbum के उत्तर के लिए जाओ। यह सबसे अच्छा है। –