2011-01-07 12 views
56

उद्देश्य-सी में @Dynamic नामक एक सुविधा है।उद्देश्य-सी में @ गतिशील क्या करता है?

Google केवल डायनामिक टाइपिंग के बारे में परिणाम सूचीबद्ध करता है।

मुझे शायद ही कभी यह कोड में दिखाई दे और मुझे समझ में नहीं आता कि इसका क्या उपयोग किया जाता है। क्या कोई मुझे यह समझा सकता है? धन्यवाद।

+0

यह http://stackoverflow.com/questions/4524954/what-is-common-case-for-dynamic-usage/4524983#4524983 और http://stackoverflow.com/questions/1160498/ का डुप्लिकेट है संश्लेषण-बनाम गतिशील-क्या-अंतर-भिन्नता –

+1

मतलब यह है कि वे दो प्रश्न भी इस और एक दूसरे के डुप्लीकेट हैं, जिससे उन्हें अदला-बदली कर दिया जा सकता है। मैं जवाब स्वीकार करूंगा और इसे बंद कर दूंगा। :) –

उत्तर

60

@dynamic का अर्थ है "मेरी कक्षा यह पता लगाएगी कि रनटाइम पर इसका जवाब कैसे दिया जाए।" किसी ऑब्जेक्ट के लिए रनटाइम तंत्र का उपयोग संदेशों को अवरुद्ध करने के लिए करता है जो आमतौर पर इसका जवाब नहीं देंगे। ऐसे मामले में जहां लगातार डेटा स्टोर करने के लिए कोर डेटा डीबी का उपयोग किया जाता है, NSManagedObject इन्हें -valueForKey: और -setValueForKey: पर कॉल में बदल देता है।

स्टैनफोर्ड के आईफोन विकास पाठ्यक्रम के Lecture 12 (पतन 2010) पर एक नज़र डालें।

+0

लेकिन मेरे कोड रनटाइम पर ऑब्जेक्ट में गुण कैसे जोड़ सकते हैं? –

+3

'' और 'NSObject.h' फ़ाइल देखें – xhan

+27

@ टाइम मशीन:' गतिशील 'का अर्थ यह नहीं है कि संपत्ति रन टाइम पर जोड़ा जाएगा, यह सिर्फ यह कहने का एक तरीका है संकलक "मुझे पता है कि मैंने संपत्ति घोषित की है लेकिन इसे इस वर्ग में लागू नहीं किया है, लेकिन मुझे पता है कि यह रन टाइम पर होगा"। यह उतना सरल हो सकता है जितना कार्यान्वयन सुपर क्लास द्वारा प्रदान किया जाना जाता है। – JeremyP

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