आईओएस 5 में, "बनाए रखें" और "रिलीज" अब समर्थित नहीं हैं। इसके बजाय "मजबूत" और "कमजोर" नया तरीका है।आईओएस 5 @property
आईओएस 4 कोड:
@property(nonatomic, retain)
@property(nonatomic, assign)
iOS 5 कोड:
???
???
आईओएस 5 में, "बनाए रखें" और "रिलीज" अब समर्थित नहीं हैं। इसके बजाय "मजबूत" और "कमजोर" नया तरीका है।आईओएस 5 @property
आईओएस 4 कोड:
@property(nonatomic, retain)
@property(nonatomic, assign)
iOS 5 कोड:
???
???
"। IOS 5 में, रिहाई को बनाए रखने के किसी भी अधिक समर्थित नहीं हैं" वे हैं, एआरसी का उपयोग करते समय नहीं।
एआरसी का उपयोग करते समय, -[<NSObject> retain]
एक नो-ऑप है।
गुणों के लिए, यदि आप एआरसी का उपयोग करते हैं तो strong
का उपयोग कर सकते हैं, लेकिन इसकी आवश्यकता नहीं है (यदि आप चाहें तो retain
भी उपयोग कर सकते हैं)। strong
और retain
समान हैं:
@property(nonatomic, strong)
@property(nonatomic, assign)
बस सुनिश्चित करें कि आप लगातार (एक ही परियोजना में strong
और retain
दोनों का उपयोग नहीं करते) कर रहे हैं।
वे बिल्कुल वैसा ही है, लेकिन नहीं कर रहे हैं मूल रूप से retain := strong
और assign := weak
मैं ARC Release notes
दरअसल, 'असाइन' 'कमजोर 'की तुलना में' unsafe_unretained' के करीब है। कमजोर संपत्ति असाइनमेंट एक नई अवधारणा है। –
यह भी ध्यान रखें कि कमजोर प्राचीन प्रकार के लिए काम नहीं करेगा जैसे int। आपको असाइनमेंट का उपयोग करना होगा। –
nonatomic
संपत्ति राज्यों पर एक नज़र लेने के सुझाव है कि वस्तु सुरक्षित थ्रेड नहीं है जिसका मतलब है कि एक अलग धागा इस वस्तु का उपयोग करने की कोशिश करता है तो बुरी चीजों की तुलना में हो सकता है लेकिन यह परमाणु संपत्ति से बहुत तेज है।
strong
एआरसी के साथ प्रयोग किया जाता है और यह मूल रूप से किसी ऑब्जेक्ट की बनाए रखने की गिनती के बारे में चिंता न करने से आपकी सहायता करता है। जब आप इसके साथ काम करते हैं तो एआरसी स्वचालित रूप से आपके लिए इसे रिलीज़ करता है। कीवर्ड strong
का अर्थ यह है कि आप ऑब्जेक्ट का स्वामी हैं।
weak
स्वामित्व का अर्थ है कि आपके पास इसका स्वामित्व नहीं है और यह ऑब्जेक्ट का ट्रैक तब तक ट्रैक रखता है जब तक कि यह ऑब्जेक्ट को जारी नहीं किया जाता है, जैसे ही दूसरी ऑब्जेक्ट जारी होती है, यह मूल्य खो जाती है। उदाहरण के लिए। obj.a=objectB;
का उपयोग किया जाता है और इसकी कमजोर संपत्ति होती है, इसकी कीमत केवल तब तक मान्य होगी जब तक ऑब्जेक्ट बी स्मृति में न रहे।
copy
संपत्ति बहुत अच्छी तरह से समझाया गया है यहाँ https://stackoverflow.com/a/5002646/919545
strong,weak,retain,copy,assign
ताकि आप उन्हें एक ही लक्ष्य पर उपयोग नहीं कर सकते ... उम्मीद कर इस मदद करता है http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html#//apple_ref/doc/uid/TP30001163-CH17-SW1
की "घोषित गुण" अनुभाग पढ़ें परस्पर अनन्य हैं आप थोड़ा सा ...
बीटीडब्ल्यू उद्देश्य-सी टीम ने पुराने कोड के साथ पिछड़ा संगत किया। –
दोनों मजबूत/एक साथ बनाए रखने का उपयोग करने के लिए कोई गंभीर कारण नहीं है? क्या यह सिर्फ एक पठनीयता चिंता है? मूल रूप से –
@ क्रैग। मुझे लगता है कि यह एआरसी के लिए नए लोगों को भ्रमित कर सकता है। –