Sto navigando attraverso il meraviglioso blog gestito da Scott Stevenson e sto cercando di capire un concetto fondamentale di Objective-C di assegnare ai delegati la proprietà 'Assegna' vs 'Conserva'. Nota, entrambi sono uguali in un ambiente di raccolta rifiuti. Mi occupo principalmente di un ambiente non basato su GC (ad es. IPhone).
Direttamente dal blog di Scott:
"La parola chiave assegnata genererà un setter che assegna direttamente il valore alla variabile di istanza, piuttosto che copiarlo o conservarlo. Questo è meglio per tipi primitivi come NSInteger e CGFloat, o oggetti che non possiedi direttamente, come i delegati."
Cosa significa che non possiedi direttamente l'oggetto delegato? In genere trattengo i miei delegati, perché se non voglio che vadano via nell'abisso, si occuperà di me. Solitamente estraggo UITableViewController dal rispettivo DataSource e delegare anche. Conservo anche quel particolare oggetto. Voglio assicurarmi che non scompaia mai, quindi il mio UITableView ha sempre il suo delegato in giro.
Qualcuno può spiegare ulteriormente dove / perché mi sbaglio, così posso capire questo paradigma comune nella programmazione di Objective-C 2.0 di usare la proprietà assegnato sui delegati invece di conservare?
Grazie!