इस तरह एक पैटर्न या, अधिक विशेष रूप से (केवल पढ़ने, को बनाए रखने) सक्षम बनाता है:
Foo.h:
@interface StuffHolder:NSObject
@property(readonly, retain) MyStuff *stuff;
@end
Foo.m:
@interface StuffHolder()
@property(readwrite, retain) MyStuff *stuff;
@end
@implementation StuffHolder
@synthesize stuff;
@end
अंतिम परिणाम है एक ऐसी संपत्ति जो कार्यान्वयन के भीतर रीडराइट होने के दौरान सार्वजनिक रूप से पढ़ा जाता है और जिसके लिए दोनों सेटटर और गेटर को संकलक द्वारा स्वचालित रूप से संश्लेषित किया जाता है। statement without an effect
के लिए कुछ समान - -
एक चेतावनी नहीं होने की स्थिति में उत्पन्न किया जा सकता वर्ग विस्तार में ओवरराइड (ReadWrite, को बनाए रखने), लेकिन यह फायदेमंद की तुलना में अधिक भ्रमित हो जाएगा। उन संयोजनों में पूरी तरह से अलग-अलग किनारे के मामले भी हैं जो समान रूप से चेतावनी की गारंटी देते हैं, लेकिन वास्तव में वास्तविक समस्या का संकेत नहीं देते हैं। निर्णय सादगी के लिए शिकायत के बिना विभिन्न पैटर्न को बड़े पैमाने पर स्वीकार करने के लिए किया गया था (क्योंकि वे शुद्धता के मुद्दे नहीं हैं)।
यह पूरी तरह से मूर्ख नहीं है; संशोधक बनाम @synthesize का मैट्रिक्स ऐसा है कि गेटर का कोड ** ** बदल सकता है। यह समझने की कोशिश कर रहा है कि वास्तव में कौन से संशोधक बनाम सक्षम किए जा सकते हैं। जिसे # वार्न मिन्यूशिया के साथ छेड़छाड़ करना चाहिए और अंत में समझना मुश्किल होगा। बस पढ़ने के लिए बेहतर "readonly-> readwrite को छोड़कर एक जैसा होना चाहिए"। – bbum
आंकड़े मुझे अपनी टिप्पणी पर विस्तार करना चाहिए .... – bbum