Qual é a diferença entre isso:
@property (nonatomic, weak) id <SubClassDelegate> delegate;
e isto:
@property (nonatomic, assign) id <SubClassDelegate> delegate;
Quero usar propriedade para delegados.
Respostas:
A única diferença entre weak
e assign
é que se o objeto para o qual uma weak
propriedade aponta for desalocado, o valor do weak
ponteiro será definido como nil
, para que você nunca corra o risco de acessar o lixo. Se você usarassign
, isso não acontecerá, então se o objeto for desalocado de você e você tentar acessá-lo, você acessará o lixo.
Para objetos Objective-C, se você estiver em um ambiente em que possa usar weak
, você deve usá-lo.
UITableView
tem assign
para seu delegado:@property (nonatomic, assign) id <UITableViewDelegate> delegate;