2011-11-23 9 views
7

मैं विरासत में निजी संपत्तियों तक पहुंचने का प्रयास कर रहा हूं। क्या उस नामकरण सम्मेलन सेब ने मुझे दिया है?उद्देश्य-सी: विरासत वर्ग में निजी संपत्तियों का उपयोग

हैडर:

#import <Foundation/Foundation.h> 

@interface FooBar : NSObject 
-(void)doSomeThingWithThisNumber:(NSInteger)aNumber; 
@end 

कार्यान्वयन:

#import "FooBar.h" 


@interface FooBar() 
@property NSInteger myPrivateFoo; 
@end 


@implementation FooBar 
@synthesize myPrivateFoo = _myPrivateFoo; 

-(void)doSomeThingWithThisNumber:(NSInteger)aNumber 
{ 
    _myPrivateFoo = aNumber; 
} 

@end 

अगर मैं मैं _myPrivateFoo उपयोग नहीं कर सकते एक नया करने के लिए इस वर्ग के वारिस। हेडर फ़ाइल में घोषणा के बजाए ऐसा करने का कोई और तरीका है?

उत्तर

16

उप-वर्ग के कार्यान्वयन में, बस अपने मुख्य @ इंटरफेस से पहले निजी श्रेणी की घोषणा करें। यह संकलन त्रुटियों को रोक देगा क्योंकि संकलक को पता चलेगा कि संपत्ति मौजूद है। मेरा मतलब है "निजी श्रेणी घोषणा":

@interface FooBar() 
@property NSInteger myPrivateFoo; 
@end 
+0

ठीक है यह काम करता है। लेकिन केवल self.myPrivateFoo के साथ। ;) टाई! –

+1

चूंकि यह काम करता है, आपको मेरे उत्तर को सही के रूप में चिह्नित करना चाहिए। –

+1

क्षमा करें, मैं नया हूँ। –

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