यह काफी हद तक व्यक्तिगत शैली और रक्षात्मक प्रोग्रामिंग के लिए नीचे है। लेकिन यहां मुख्य कारण है कि मैं व्यक्तिगत रूप से क्यों उपयोग करता हूं और लोगों ने उपसर्ग का उपयोग किया है।
यह आपके इरादे को स्पष्ट करने के साथ करना है कि आप सीधे ivar तक पहुंच रहे हैं या गेटर/सेटर का उपयोग कर रहे हैं या नहीं।
तो मेरे पास है:
@property (nonatomic, retain) NSArray *people;
और:
@synthesize people = _people;
यह संकलन और इस तरह गेटर/सेटर घोषणाओं का उत्पादन करेगा:
- (void)setPeople:(NSArray *)people;
- (NSArray *)people;
अब सीधे इवर तक पहुँचने के लिए मुझे उपयोग करने की आवश्यकता है:
_people
गेटर/सेटर मैं डॉट नोटेशन या गेटर/सेटर की तरह उपयोग कर सकते हैं का उपयोग करें:
[self people];
// or
self.people; // which compiles to [self people];
// and
[self setPeople:newPeople];
// or
self.people = newPeople; // which compiles to [self setPeople:newPeople];
अब मेरी कोड में अगर मैं गलती से बस टाइप करें:
people = newPeople; // will not compile
ऐसा नहीं होगा संकलित करें क्योंकि मैं गेटर/सेटर का उपयोग नहीं कर रहा हूं और people
नामक कोई इवर नहीं है, यह _people
होना चाहिए।
स्रोत
2011-07-30 23:07:14
यह प्रश्न मदद की जा सकती है: http://stackoverflow.com/q/5466496/840973 –