Вы должны сделать:
UIActivityIndicatorView *aSpinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
foo.spinner = aSpinner;
[aSpinner release];
или
foo.spinner = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge] autorelease];
Все остальное в порядке:)
Объяснение:
Помните, что синтезируясвойство типа:
@property (nonatomic, retain) UIActivityIndicatorView *spinner;
в основном похоже на:
- (void)setSpinner:(UIActivityIndicatorView *)aSpinner{
[aSpinner retain];
[spinner release];
spinner = aSpinner;
}
Таким образом, после выполнения foo.spinner = [[UIActivityIndicatorView alloc] init...];
счетчик сохранения будет равен 2 (alloc / init: 1 и 2, поскольку свойство сохраняется),Кроме того, выполнение [someView addSubview:foo.spinner];
увеличит количество сохраняемых единиц на 1, поэтому у вас есть 3:)