fraco ou forte para o IBOutlet e outro [duplicado]

Esta questão já tem uma resposta aqui:

Os IBOutlets devem ser fortes ou fracos no ARC? 11 respostas

Eu mudei meu projeto para o ARC, e não entendi se tenho que usarstrong ouweak para IBOutlets. O Xcode faz isso: no construtor de interface, se criar umUILabel por exemplo, e eu conecto-o com o editor assistente para o meuViewController, crie isso:

@property (nonatomic, strong) UILabel *aLabel;

Ele usa ostrongEm vez disso, li um tutorial no site do RayWenderlich que diz isso:

Mas para essas duas propriedades particulares, tenho outros planos. Ao invés destrong, vamos declará-los comoweak.

@property (nonatomic, weak) IBOutlet UITableView *tableView;
@property (nonatomic, weak) IBOutlet UISearchBar *searchBar;

Weak é a relação recomendada para todossaída propriedades. Esses objetos de visualização já fazem parte da hierarquia de visualizações do controlador de visualização e não precisam ser retidos em outro lugar. A grande vantagem de declarar suas saídasweak é que você economiza tempo escrevendo o método viewDidUnload.

Atualmente nossoviewDidUnload se parece com isso:

- (void)viewDidUnload
{
    [super viewDidUnload];
    self.tableView = nil;
    self.searchBar = nil;
    soundEffect = nil;
}

Agora você pode simplificá-lo para o seguinte:

- (void)viewDidUnload
{
    [super viewDidUnload];
    soundEffect = nil;
}

Então useweak, ao invés destronge remova o conjunto para zero novideDidUnload, em vez disso, o Xcode usa ostronge use oself... = nil noviewDidUnload.

Minha pergunta é: quando eu tenho que usarstrong, e quandoweak? Eu também quero usar para o destino de implantação do iOS 4, então quando eu tenho que usar ounsafe_unretain? Qualquer um pode ajudar a me explicar bem com um pequeno tutorial, quando usarstrong, weak eunsafe_unretain com ARC?

questionAnswers(2)

yourAnswerToTheQuestion