Objective c 为什么我在方法调用中得到的是超类而不是子类?
我有一个类,它是C#抽象类的一个端口;这是.h文件:Objective c 为什么我在方法调用中得到的是超类而不是子类?,objective-c,subclass,Objective C,Subclass,我有一个类,它是C#抽象类的一个端口;这是.h文件: @interface Schedule : NSObject { } @property (strong, nonatomic) NSDate *apptStartTime; @property (strong, nonatomic) NSDate *apptEndTime; @property (strong, nonatomic) NSString *key; -(BOOL) occursOnDate: (NSDate *) ti
@interface Schedule : NSObject {
}
@property (strong, nonatomic) NSDate *apptStartTime;
@property (strong, nonatomic) NSDate *apptEndTime;
@property (strong, nonatomic) NSString *key;
-(BOOL) occursOnDate: (NSDate *) timeOfAppointment;
@end
@interface SingleSchedule : Schedule {
}
@property (strong,nonatomic) NSDate *apptDate;
-(BOOL) occursOnDate: (NSDate *)date;
@end
这是计划的.m文件:
@implementation Schedule {
}
@synthesize apptStartTime;
@synthesize apptEndTime;
@synthesize key;
/**
The OccursOnDate method is abstract and must be implemented by subclasses. When passed a date, the schedulers must determine if an appointment falls on that date. If one does, the method should return true. If not, the method returns false.
*/
-(BOOL) occursOnDate: (NSDate *) dateOfAppointment {
return YES:
}
因为它是一个C#抽象类,所以必须重写(或子类化),我在这里已经做过(这是.h文件):
这是.m文件:
@implementation SingleSchedule {
}
@synthesize apptDate;
-(BOOL) occursOnDate: (NSDate *)date {
return (apptDate == date); // <--------- TODO where is apptDate set?
}
@实施计划{
}
@合成阿普特酯;
-(BOOL)发生日期:(NSDate*)日期{
return(apptDate==date);//调用基类实现是因为sc
的类型是Schedule
,而不是SingleSchedule
。实例化类时,新对象知道它自己的实现和基类链,但对象不知道它继承的类
也许你想要的是:
SingleSchedule *sc = [[SingleSchedule alloc]init];
调用基类实现是因为sc
的类型是Schedule
,而不是SingleSchedule
。实例化类时,新对象知道它自己的实现及其基类链,但对象不知道它继承的类
也许你想要的是:
SingleSchedule *sc = [[SingleSchedule alloc]init];
调用基类实现是因为sc
的类型是Schedule
,而不是SingleSchedule
。实例化类时,新对象知道它自己的实现及其基类链,但对象不知道它继承的类
也许你想要的是:
SingleSchedule *sc = [[SingleSchedule alloc]init];
调用基类实现是因为sc
的类型是Schedule
,而不是SingleSchedule
。实例化类时,新对象知道它自己的实现及其基类链,但对象不知道它继承的类
也许你想要的是:
SingleSchedule *sc = [[SingleSchedule alloc]init];
老鼠!我有,但出于某种原因它仍然不起作用…它现在起作用…谢谢你的帮助。德拉茨!我有,但出于某种原因它仍然不起作用…它现在起作用…谢谢你的帮助。德拉茨!我有,但出于某种原因它仍然不起作用…它现在起作用…谢谢你的帮助。德拉茨!我有,但由于某种原因,它仍然不起作用……它现在起作用了……谢谢你的帮助。:D