Я практикую свои навыки Objective C и столкнулся с небольшой проблемой, хотя я не могу найти прямой ответ на этот вопрос в любом месте, где бы я ни выглядел. В руководствах разработчика Apple, которые я читаю, ничего не сказано о том, как использовать метод фабрики класса с несколькими параметрами (скажем, 3 параметра) и вернуть инициализированный объект с помощью переопределенного метода init.Class Factory Method с несколькими параметрами
Здесь у меня есть простой класс под названием XYZPerson.
@implementation XYZPerson
// Class Factory Method
+ (id)person:(NSString *)firstName with:(NSString *)lastName andWith:(NSDate *)dateOfBirth {
// need to return [ [self alloc] init with the 3 paramaters]; here
// Or some other way to do so..
}
// Overridden init method
- (id)init:(NSString *)firstName with:(NSString *)lastName andWIth:(NSDate *)dateOfBirth {
self = [super init];
if (self) {
_firstName = firstName;
_lastName = lastName;
_dateOfBirth = dateOfBirth;
}
return self;
}
// Use the initialized instance variables in a greeting
- (void)sayHello {
NSLog(@"Hello %@ %@", self.firstName, self.lastName);
}
А потом в моей основной я экземпляра объекта XYZPerson
XYZPerson *person = [XYZPerson person:@"John" with:@"Doe" andWith:[NSDate date]];
[person sayHello];
Может кто-нибудь дать мне небольшой указатель на том, как сделать это правильно?
Вы также можете изменить тип возврата указанного метода на 'instancetype'. – Fabian
Спасибо, отлично! –
Рад, что я мог помочь. Не забудьте принять ответ. – rmaddy