Назначение себя в Objective-C
Я из мира C ++, поэтому понятие присвоенияthis
заставляет меня содрогаться
this = new Object; // Gah!
Но в Objective-C есть похожее ключевое слово,self
для которого это вполне приемлемо:
self = [super init]; // wait, what?
Многие примеры кода Objective-C используют приведенную выше строку вinit
Подпрограммы. Мои вопросы:
1) Почему назначениеself
имеет смысл (ответы типа «потому что язык это позволяет» не в счет)
2) Что произойдет, если я не назначуself
в моемinit
рутина? Я подвергаю свой экземпляр какой-то опасности?
3) Когда следующееif
утверждение не выполнено, что это значит и что я должен сделать, чтобы восстановиться после него:
- (id) init
{
self = [super init];
if (self)
{
self.my_foo = 42;
}
return self;
}