У меня есть суперкласс и подклассы в следующем формате:Вызова метода суперкласса от подклассов объективных C
ParentClass.h
@interface ParentClass : NSObject
-(ParentClass *)field:(NSArray *)fields;
@end
ParentClass.m
#import "ParentClass.h"
@implementation ParentClass
-(id)init{
self = [super init];
if (self == nil) {
return self;
}
return self;
}
-(ParentClass *)field:(NSArray *)fields{
ParentClass *pc = [[ParentClass alloc] init];
// code
return pc;
}
@end
Subclass.h
@interface Subclass : ParentClass
-(Subclass *)field:(NSArray *)fields;
@end
Subclass.m
#import "Subclass.h"
@implementation Subclass
-(id)init{
self = [super init];
if (self == nil) {
return self;
}
return self;
}
-(Subclass *)field:(NSArray *)fields{
// code
return (Subclass *)[self field:fields];
}
@end
Я предполагаю, что вопрос здесь.
возвращение (подкласс *) [поле пользователя: поля];
Я не получаю доступ к методу родительского класса так, как должен. Может ли кто-нибудь сказать, что должно быть правильно?
Что делать, если я позвоню так?
- (Подкласс *) subClassField: (NSArray *) поля {
return (Subclass *)[self field:fields];
}
и я заменил - поле (Подкласс *): (*) NSArray полей;
с - (Подкласс *) subClassField: (NSArray *) поля;
Что вы пытаетесь сделать, точнее, почему возникает вопрос. У вас в настоящее время есть бесконечный цикл и очень странная структура. Пожалуйста, объясните свою конечную цель. – Wain
Мне нужно получить доступ к методам из ParentClass, чтобы получить данные и ввести их в подкласс внутри метода, объявленного в подклассе. // - (ParentClass *) field: (NSArray *) поля –
Вы можете использовать только подкласс, если это фактически экземпляр подкласса. И это не говорит нам о том, чего вы на самом деле пытаетесь достичь, а просто говорит нам, что вы думаете, какой подход вы хотите предпринять ... Почему вы хотите, чтобы существующий экземпляр создавал новый экземпляр? – Wain