我正在设置继承。
我有一个父类,它有一个调用块的方法。一旦块返回,我需要它来调用子类中的重写方法。
当我设置断点时,失败时,块正在调用父类中的方法。我究竟做错了什么?谢谢。
父类
·H
@interface BaseClass : UITableViewController
-(void)userModelUpdated
-(void)updateModel
@end
的.m
@implementation BaseClass
-(void)userModelUpdated
{} //this is left blank intentionally as a hook
-(void)updateModel
{
//Here is s Block
[EndPoint updateUserModel:self.userModel successBlock:^{
//Do Something
} errorBlock:^(NSError *error, NSArray *errorArray) {
[self userModelUpdated]; // I want to call the method in the child class
// but when I setup the break points, it calls the method in the parent class
}
}
儿童班
·H
@interface childClass : BaseClass
的.m
@implementation ChildClass
-(void)viewWillAppear:(BOOL)animated
{
[self updateModel];
}
-(void)userModelUpdated
{
// update UILabels Here
}
答案 0 :(得分:3)
如果调用self
时ChildClass
是updateModel
的实例,那么将执行ChildClass的-userModelUpdated
实施。
如果不是,那是因为你可能有一个BaseClass
的实例,或者你有拼写错误。
将此添加到所有方法:
NSLog(@"%s", __PRETTY_FUNCTION__);
这将记录每一步的确切情况。
答案 1 :(得分:1)
听起来你的代码正在创建这个类族的实例是错误的,并且正在创建一个基类对象而不是子类对象。发布创建对象的代码并在其上调用方法。