Назначенный инициализатор и передаваемые аргументы
У меня есть эта иерархия:
CreateAnObjectClass : NSObject
MySecondClass : MyBaseClass
MyBaseClass : NSObject
в CreateAnObjectClass я хочу создать экземпляр метода MySecondClass, и я хочу передать @property (strong,nonatomic) NSDictionary* myTemplate
в myBaseClass.
Например:
CreateAnObjectClass *testObj = [[MySecondClass alloc] initWithTemplate:myTemplate];
И я знаю, что вызывает оба инициализатора из MyBaseClass и MySecondClass.
(id)initWithTemplate:(NSDictionary*)myTemplate
{
self = [super init]
return self;
}
Мой вопрос заключается в том, как я должен назначить инициализаторы, чтобы myTamplate мог быть свойством на MyBaseClass?
1 ответ
Решение
Как это:
- (id)initWithTemplate:(NSDictionary*)aTemplate
{
self = [super init]
if (self){
self.myTemplate=aTemplate;
}
return self;
}
Изменить 1:
Помните следующее, называя это:
self = [super init];
На MySecondClass
вызовет метод init на MyBaseClass