मैं एक संपत्ति के रूप में उपलब्ध मूल वर्ग पर एक विधि बनाने के लिए एक श्रेणी का उपयोग करना चाहता हूं।उद्देश्य-सी श्रेणियां: क्या मैं अपनी श्रेणी में नहीं एक विधि के लिए एक संपत्ति जोड़ सकता हूं?
क्लास ए:
@interface ClassA
- (NSString*)foo;
@end
क्लास ए श्रेणी
@interface ClassA (Properties)
- (void)someCategoryMethod;
@property (nonatomic, readonly) NSString *foo;
@end
अब जब मैं यह कर, यह काम करने लगता है (संपादित करें: हो सकता है कि यह काम नहीं करता, यदि ऐसा नहीं होता शिकायत करें लेकिन मैं अजीबता देख रहा हूं), लेकिन यह मुझे चेतावनी देता है क्योंकि मैं अपनी श्रेणी के कार्यान्वयन में संपत्ति को संश्लेषित नहीं कर रहा हूं। मैं संकलक कैसे बता सकता हूं सब कुछ वास्तव में ठीक है क्योंकि मूल वर्ग मेरे लिए संपत्ति संश्लेषित करता है?
गुण (ज्यादातर) केवल '-फू' और '-सेटफू' विधि के लिए चीनी हैं। आप श्रेणियों में कोई अतिरिक्त आवृत्ति चर नहीं जोड़ सकते हैं, लेकिन आप उन तरीकों को परिभाषित कर सकते हैं। @property वाक्यविन्यास वैकल्पिक है, लेकिन सुझाव दिया (मुझे यकीन नहीं है कि यह काम करता है)। –
किसी भी व्यक्ति को बैकिंग इवर (श्रेणी में परिभाषित) के साथ एक संपत्ति जोड़ने की कोशिश करने के लिए, इसे देखें: http://oleb.net/blog/2011/05/faking-ivars-in-objc-categories-with- सहयोगी-संदर्भ/ – Senseful
[उद्देश्य-सी: श्रेणी में संपत्ति] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/8733104/objective-c-property-in-category) – hfossli