क्या स्मृति प्रबंधन लाभों के लिए निजी चर के लिए @properties बनाना बुरा है?क्या यह स्मृति प्रबंधन लाभों के लिए निजी चर के लिए @properties का उपयोग करने के लिए "खराब" है?
यह कई निजी चर के लिए सार्वजनिक सामना @properties होने के लिए गन्दा और गलत लगता है।
(मुख्य रूप से, मैं निजी ivars कम स्मृति की स्थिति के दौरान संबंधित "घटना" तरीकों का उपयोग कर रिहा कर रहा हूँ।)
उदाहरण:
[name release]; name = nil;
: मैं आमतौर पर यह एक निजी इवर जारी करने के लिए करते हैं
लेकिन @properties साथ, मैं यह कर सकता:
self.name = nil;
मेरी कोड में बाद में, यह कर देगा, इसलिए , KVO सूचनाएं
if(!name)
name = [[NSString alloc] initWithFormat:@"Hi %@",inputName];
यह बहुत अच्छा है, लेकिन यह एक हैक की तरह लगता है। मुझे यकीन नहीं है कि मैं इसे अपने कोड में करने जा रहा हूं, लेकिन कम से कम मुझे पता है कि अब मैं क्या कर रहा हूं इसका एक विकल्प है। धन्यवाद!! – bentford
यह एक हैक नहीं है, यह एक्सटेंशन का एक स्पष्ट रूप है जिसे एक्सटेंशन कहा जाता है।। "कक्षा के लिए सार्वजनिक रूप से घोषित एपीआई होना आम बात है और उसके बाद कक्षा या फ्रेमवर्क द्वारा पूरी तरह से उपयोग के लिए अतिरिक्त एपीआई घोषित किया गया है जिसमें कक्षा" –
है "यह बिल्कुल हैक नहीं है और 100% पहली जगह भाषा में क्लास एक्सटेंशन क्यों जोड़े गए थे। इस पैटर्न को गस्टो के साथ गले लगाओ। – bbum