ARC - выделить в сильную собственность. Создает утечку?

Создает ли в ARC утечку памяти для alloc в @property (strong)

// MyClass.h
@property (strong) NSString *myString;

// MyClass.m
@synthesize myString=_myString;

- (void)viewDidLoad
{
    self.myString = [[NSString alloc] initWithFormat:@"Test %@", otherString];
}

Я знаю, что при ручном управлении памятью эквивалент приведет к утечке

// MyClass.h
@property (retain) NSString *myString;

// MyClass.m
@synthesize myString=_myString;

- (void)viewDidLoad
{
    self.myString = [[NSString alloc] initWithFormat:@"Test %@", otherString];
}

- (void)dealloc
{
    [_myString release];
}

Может ли ARC правильно обработать верхний пример? Оптимизирует ли он одно из удержаний? Или, может быть, выпустить дважды в dealloc?

14
задан bearMountain 21 November 2011 в 16:41
поделиться