Я настраиваю наследование.Objective-C: Использование методов наследования и вызова в дочернем классе
У меня есть родительский класс, который имеет метод, который вызывает блок. Как только блок возвращается, мне нужно, чтобы он вызывал переписанный метод в дочернем классе.
Когда я устанавливаю точки останова, после отказа блок вызывает метод в родительском классе. Что я делаю не так? Благодарю.
Родитель Класс
.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
}
У вас есть '@implementation ChildClass' дважды: в файле родительского класса .m и в файле .m-файла Child. - Это фактический код или некоторая ошибка копирования/вставки? –
Извините. Фактический код действительно грязный, поэтому я упростил его. Я исправил реализацию. – user1107173
Вы уверены, что объект, о котором идет речь, является экземпляром 'ChildClass'? Установили ли вы контрольную точку в 'updateModel' и проверили класс' self'? –