在我的父类(WebServiceMessage)的.h和.m文件中,我有以下几行:
@property(nonatomic, retain) NSMutableData *receivedData;
@synthesize receivedData;
我的子课程有以下定义:
@interface RegistrationMessage : WebServiceMessage{...}
-(bar)foo;
所以理论上,子类应该能够使用receivedData而不需要自己声明它 - 它应该从它的父级继承该变量的存在。
@implementation RegistrationMessage
...
-(bar)foo{
self.receivedData=[NSMutableData data];//Error: Property 'receivedData' not found on object of type 'Class'
}
我已经检查过,我正在使用#import作为.h和.m文件中的父类,只是为了确定,但错误仍在显示。
答案 0 :(得分:2)
根据错误,您似乎省略了一个重要细节:foo
不是实例方法,它是一个类方法(即+ (void)foo
而不是- (void)foo
})。您只能在实例上设置属性(或一般的实例变量)。
答案 1 :(得分:1)
有些东西缺少你没有显示的代码,下面的编译很好:
@interface WebServiceMessage : NSObject
@property(nonatomic, retain) NSMutableData *receivedData;
@end
@implementation WebServiceMessage
@synthesize receivedData;
@end
@interface RegistrationMessage : WebServiceMessage
-(void)foo;
@end
@implementation RegistrationMessage
-(void)foo {
self.receivedData = [NSMutableData data];
}
@end
我必须摆脱bar
返回类型,因为它是一个未知类型,并且方法foo中没有return语句。