Примечание. Я относительно новичок в Objective-C и прихожу из Java и PHP.
Может кто-нибудь объяснить мне, почему я всегда должен сначала выделить, а затем инициализировать экземпляр?
Невозможно это сделать в методах init, подобных этому:
+ (MyClass*)init {
MyClass *instance = [MyClass alloc];
[instance setFoo:@"bla"];
return instance;
}
+ (MyClass*)initWithString:(NSString*)text {
MyClass *instance = [MyClass init];
[instance setFoo:text];
return instance;
}
...
Это просто реликт из старых дней C или есть что-то, чего я не вижу?
Я знаю, что это не проблема, так как я мог бы всегда вызывать alloc и init, но, поскольку это немного утомительно, мне бы хотелось хотя бы знать, почему я это делаю.
Мне нравится выразительность языка, но это то, что я хочу полностью понять, чтобы подумать о способе Objective-C.
Спасибо!