अपने इंटरफ़ेस में, आप औपचारिक रूप से ब्रेसिज़ के बीच, या @property
ब्रेसिज़ के बाहर या दोनों के माध्यम से एक इंस्टेंस चर घोषित कर सकते हैं । किसी भी तरह, वे वर्ग के गुण बन जाते हैं। अंतर यह है कि यदि आप घोषणा करते हैं @property
, तो आप का उपयोग करके लागू कर सकते हैं @synthesize
, जो आपके लिए आपके गेटटर / सेटर को ऑटो-कोड करता है। ऑटो-कोडर सेटर पूर्णांक को इनिशियलाइज़ करता है और उदाहरण के लिए शून्य पर तैरता है। यदि आप एक उदाहरण चर की घोषणा करते हैं, और एक संगत निर्दिष्ट नहीं करते हैं @property
, तो आप उपयोग नहीं कर सकते हैं @synthesize
और अपने स्वयं के गेटटर / सेटर को लिखना होगा ।
आप हमेशा ऑटो-कोडेड गेट्टर / सेटर को ओवरराइड कर सकते हैं अपने स्वयं के निर्दिष्ट करके। यह आमतौर पर उस managedObjectContext
संपत्ति के साथ किया जाता है जो आलसी लोडेड है। इस प्रकार, आप अपनी managedObjectContext
संपत्ति घोषित करते हैं, लेकिन फिर एक भी लिखते हैं-(NSManagedObjectContext *)managedObjectContext
विधि । उस विधि को याद करें, जिसका उदाहरण चर / संपत्ति के समान नाम है, "गेट्टर" विधि है।
@property
घोषणा विधि भी आप इस तरह के रूप में अन्य विकल्प, की अनुमति देता है retain
और readonly
है, जो उदाहरण चर घोषणा विधि नहीं है। मूल रूप से, ivar
पुराना तरीका है, और @property
इसे विस्तारित करता है और इसे कट्टर / आसान बनाता है। आप स्वयं का उपयोग करके या तो संदर्भित कर सकते हैं। उपसर्ग, या नहीं, यह तब तक मायने नहीं रखता जब तक कि नाम उस वर्ग के लिए अद्वितीय न हो। अन्यथा, यदि आपके सुपरक्लास में आपके जैसी ही संपत्ति का नाम है, तो आपको यह बताने के लिए स्व.नाम या सुपर.नाम की तरह या तो यह कहना होगा कि आप किस नाम के बारे में बात कर रहे हैं।
इस प्रकार, आप कम और कम लोगों ivar
को ब्रेसिज़ के बीच एस घोषित करते हैं , और इसके बजाय सिर्फ निर्दिष्ट करने की ओर शिफ्ट होते हैं @property
, और फिर कर रहे हैं @synthesize
। आप इसके @synthesize
बिना अपने कार्यान्वयन में नहीं कर सकते @property
। सिंथेसाइज़र केवल यह जानता है कि यह किस प्रकार की विशेषता है @property
। सिंथेसाइज़ स्टेटमेंट आपको संपत्तियों का नाम बदलने की भी अनुमति देता है, ताकि आप अपने कोड के अंदर एक नाम (आशुलिपि) द्वारा एक संपत्ति का उल्लेख कर सकें, लेकिन .h फ़ाइल के बाहर पूर्ण नाम का उपयोग करें। हालाँकि, XCode के पास वास्तव में अच्छा स्वत: पूर्ण होने के साथ, यह एक लाभ से कम है, लेकिन अभी भी है।
आशा है कि यह सब भ्रम और गलत सूचनाओं को दूर करने में मदद करता है जो वहां से बाहर चल रही है।