Qual è la differenza tra questo:
@property (nonatomic, weak) id <SubClassDelegate> delegate;
e questo:
@property (nonatomic, assign) id <SubClassDelegate> delegate;
Voglio usare la proprietà per i delegati.
Risposte:
L'unica differenza tra weake assignè che se l'oggetto a cui weakpunta una proprietà viene deallocato, il valore del weakpuntatore verrà impostato su nil, in modo da non correre mai il rischio di accedere a spazzatura. Se lo usi assign, ciò non accadrà, quindi se l'oggetto viene deallocato da sotto di te e provi ad accedervi, accederai alla spazzatura.
Per gli oggetti Objective-C, se ti trovi in un ambiente in cui puoi usarlo weak, dovresti usarlo.
UITableViewha anche assignper il suo delegato:@property (nonatomic, assign) id <UITableViewDelegate> delegate;