¿Cuál es la diferencia entre esto?
@property (nonatomic, weak) id <SubClassDelegate> delegate;
y esto:
@property (nonatomic, assign) id <SubClassDelegate> delegate;
Quiero usar propiedad para delegados.
Respuestas:
La única diferencia entre weaky assignes que si el objeto al que weakapunta una propiedad está desasignado, entonces el valor del weakpuntero se establecerá en nil, por lo que nunca corre el riesgo de acceder a la basura. Si lo usa assign, eso no sucederá, por lo que si el objeto se desasigna debajo de usted e intenta acceder a él, accederá a la basura.
Para los objetos Objective-C, si se encuentra en un entorno en el que puede usar weak, entonces debería usarlo.
UITableViewtiene assignpara su delegado:@property (nonatomic, assign) id <UITableViewDelegate> delegate;