Когда дело доходит до выделения и инициализации объектов, которые объявлены @properties класса, я видел два основных шаблона в различных битах примера кода, поэтому, учитывая следующий (составленный) код заголовка -
@interface Class : Superclass {
Object *anObject;
}
@property (nonatomic, retain) Object *anObject;
Первое прямое назначение:
self.anObject = [[Object alloc] init];
Второй косвенный метод создает временный объект, который затем присваивается свойству и освобождается:
Object *tempObject = [[Object alloc] init];
self.anObject = tempObject;
[tempObject release];
Какая выгода длявторой метод над первым?