使用消息样式语法访问子类中的属性

时间:2012-06-11 12:05:22

标签: objective-c

我对objective-c完全陌生,我目前正处于学习过程中, 我有一个父类A,属性a, 我试图访问子类B中的属性, 当我访问该属性并分配一个像这样的值

[self a:3];

它确实抱怨没有可见的@interface为B声明选择器a

但如果我访问它就像从中读取它     int something = [self a]; 然后它没有抱怨。

我理解访问属性的推荐方法是使用。在对象和属性之间,但从技术上讲,它应该与消息样式调用一起使用。但事实并非如此,所以请告诉我这个。

我的代码就像这样

// Test class A
@interface A : NSObject

@property int a;

-(void) initMe; 

@end

@implementation A

@synthesize a;

-(void) initMe
{
 NSLog(@"I am in A");
}
@end

//-------------------------

@interface B : A

-(void) initEx; 

@end

@implementation B

-(void) initEx
{
    // This line gives a problem as I mentioned above
    [self a:3];
    NSLog(@"In child class B");
}

@end

///-----------------------

1 个答案:

答案 0 :(得分:3)

[self a:3];语法错误。如果你想调用setter方法,它应该是:

[self setA:3];