मैंने निम्नलिखित स्निपेट को थोड़ा सा देखा है:alloc + संश्लेषित संपत्ति के साथ init - क्या यह दो से बढ़ने के लिए गिनती बनाए रखने का कारण बनता है?
शीर्षलेख में:
SomeClass *bla;
@property(nonatomic,retain) SomeClass *bla;
कार्यान्वयन फ़ाइल में:
@synthesize bla;
और फिर
self.bla = [[SomeClass alloc] init];
मुझे लगता है कि यह असाइनमेंट 'ब्लै' के लिए दो को ऊपर रखता है; एक बार आवंटन/इनिट कॉल के माध्यम से, फिर बनाए रखने के माध्यम से हमने संश्लेषित संपत्ति सेटटर के माध्यम से होने के लिए कहा।
नतीजतन, मैं आमतौर पर इस तरह की अपनी संपत्तियों की घोषणा करता हूं:
शीर्षलेख में:
SomeClass *_bla; // note the underscore
@property(nonatomic,retain) SomeClass *bla;
कार्यान्वयन फ़ाइल में:
@synthesize bla = _bla;
और फिर
_bla = [[SomeClass alloc] init];
बशर्ते मेरी प्रारंभिक धारणा सही है - मुझे यह जानने में दिलचस्पी होगी कि ऐसा करने का 'सही' तरीका है, यानी घोषणाओं, प्रारंभिकरण और गुणों के स्मृति प्रबंधन?
लोड करने के माध्यम से किया जाता है, सबसे पहले, स्टैक ओवरफ़्लो में आपका स्वागत है। स्टैक पर करना महत्वपूर्ण चीजों में से एक है उन उत्तरों को स्वीकार करना जो आपके लिए काम करते हैं। उत्तरदाताओं के लिए और अपनी प्रतिष्ठा के लिए यह महत्वपूर्ण है। – smathy