2012-02-23 6 views
7

अगर मैं केवल पढ़ने के लिए स्ट्रिंग संपत्ति है, यह strong (या retain) या copy घोषणा में निर्दिष्ट करने की आवश्यकता है? अगर मैं निर्दिष्ट नहीं करता हूं, तो उनमें से एक माना जाता है?क्या कोई उद्देश्य-सी रीडोनली प्रॉपर्टी को मजबूत या प्रतिलिपि निर्दिष्ट करने की आवश्यकता है?

ऐसा लगता है कि स्वामित्व विशेषता केवल तब उपयोगी होती है जब आपके पास एक सेटटर होता है।

@property (nonatomic, readonly) NSString *name; 
+0

"असाइन" हमेशा माना जाता है कि –

+1

निर्दिष्ट नहीं है http://stackoverflow.com/questions/9397322/does-property-copy-in-combination-with-readonly-make-sense इसी तरह की चर्चा के लिए देखें। – Monolo

+0

धन्यवाद Monolo, लिंक पर +1। – Boon

उत्तर

9

यह ज्यादातर सही है। readonly संपत्ति के लिए, strong, retain, weak, और assign का कोई प्रभाव नहीं है। लेकिन यदि आप readwrite (.m में अज्ञात श्रेणी में अक्सर) के रूप में अन्य संपत्ति की घोषणा भी करते हैं, तो अन्य संशोधकों को मिलान करने की आवश्यकता है।

+0

अच्छा जवाब! लेकिन अगर रीडोनली प्रॉपर्टी में गेटटर नहीं है और आंतरिक रूप से रीडराइट के रूप में पुनर्वितरण नहीं किया गया है, तो संपत्ति पर मजबूत भी लागू होना चाहिए क्योंकि इसमें अब ivar है, क्या यह सही है? –

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

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