sto dichiarando una proprietà in una classe NSString e Objective-C si lamenta che:NSString alcun attributo 'assegnazione', 'trattenere', o 'copia' è specificato
NSString no 'assegnazione', ' retain ', o' copy 'l'attributo è specificato
Quindi casualmente mi fa sapere che "assegna è usato invece".
Qualcuno può spiegare a me la differenza tra assegnare, mantengono e copia in termini di normali C di gestione della memoria funzioni?
mantenere - __even if__ qualcuno [deallocs] l'NSString a cui si fa riferimento? O funziona solo se ogni utente della stessa istanza [rilascia]? – bobobobo
@bobobobo - non dovresti * mai * chiamare 'dealloc' te stesso. Dovresti * sempre * usare 'release' o' autorelease'. –
Quello che Dave ha detto. Il motivo per cui i tuoi dati sono garantiti è perché tu presumi che tutti gli altri utilizzino solo la versione, riducendo il numero di riferimenti solo per riferimento. Se altre persone, o te stesso, passano dealloc o rilasciando un oggetto (quindi non seguendo le regole) i tuoi dati non sono garantiti! – bmalicoat