我对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
///-----------------------
答案 0 :(得分:3)
[self a:3];
语法错误。如果你想调用setter方法,它应该是:
[self setA:3];