Per creare un dizionario vuoto, dovrei chiamare [NSMutableDictionary dictionary]
o [[NSMutableDictionary alloc] init]
?Per creare un dizionario vuoto, [dizionario NSMutableDictionary] o [[NSMutableDictionary alloc] init]?
Qual è la differenza?
Per creare un dizionario vuoto, dovrei chiamare [NSMutableDictionary dictionary]
o [[NSMutableDictionary alloc] init]
?Per creare un dizionario vuoto, [dizionario NSMutableDictionary] o [[NSMutableDictionary alloc] init]?
Qual è la differenza?
[NSMutableDictionary dictionary]
è lo stesso di [[[NSMutableDictionary alloc] init] autorelease]
La differenza è che se si utilizza NSMutableDictionary* myDictionary = [[NSMutableDictionary alloc] init]
si dovrà chiamare in seguito [myDictionary release]
quando hai finito con esso. Altrimenti perderai memoria. Se si utilizza l'altro metodo, non è necessario preoccuparsi della gestione della memoria.
Devi ancora preoccuparti della gestione della memoria con istanze autorelitte. Si consideri ad es. creare molti array in un circuito chiuso senza drenare il pool di autorelease corrispondente. –
per ragioni di completezza, alcuni anni più tardi abbiamo ottenuto altro modo più breve dizionario alloc:
NSMutableDictionary* dictionary = @{}.mutableCopy;
Grazie. Per la programmazione iPhone, penso che [[NSMutableDictionary alloc] init] sia preferito. –
@Stephen: ??? Perché la pensi in questo modo? Sicuramente, in molti casi, sarà probabilmente meglio liberare le cose subito dopo averle finite, ma puoi anche eliminare un pool di autorelease dopo ogni n cicli in un circuito chiuso per gestire anche l'utilizzo della memoria. Come hai affermato, tuttavia, il tuo commento è troppo generale per essere vero. –