débil o fuerte para IBOutlet y otros [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Deben los IBOutlets ser fuertes o débiles bajo ARC? 11 respuestas

He cambiado mi proyecto a ARC, y no entiendo si tengo que usarstrong oweak para IBOutlets. Xcode hace esto: en el constructor de interfaces, si creas unUILabel por ejemplo y lo conecto con el editor asistente a miViewController, crea esto:

@property (nonatomic, strong) UILabel *aLabel;

Utiliza elstrongEn su lugar, leí un tutorial en el sitio web RayWenderlich que dice esto:

Pero para estas dos propiedades particulares tengo otros planes. En lugar destrong, los declararemos comoweak.

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

Weak Es la relación recomendada para todos.salida propiedades Estos objetos de vista ya forman parte de la jerarquía de vistas del controlador de vista y no es necesario que se conserven en ningún otro lugar. La gran ventaja de declarar tus outlets.weak es que le ahorra tiempo al escribir el método viewDidUnload.

Actualmente nuestroviewDidUnload Se ve como esto:

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

Ahora puedes simplificarlo a lo siguiente:

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

Asi que usaweak, en vez destrong, y quitar el conjunto a cero en elvideDidUnloadEn su lugar, Xcode usa elstrong, y usar elself... = nil en elviewDidUnload.

Mi pregunta es: cuando tengo que usarstrong, y cuandoweak? También quiero usarlo para el destino de implementación de iOS 4, así que ¿cuándo tengo que usar elunsafe_unretain? Cualquiera puede ayudarme a explicarme bien con un pequeño tutorial, cuando lo usestrong, weak yunsafe_unretain con ARC?

Respuestas a la pregunta(2)

Su respuesta a la pregunta