2012-02-14 8 views

risposta

15

Il comportamento assegnato determina la modalità di gestione della memoria per il tipo. Se scegli di conservare o copiare l'oggetto verrà rilasciato quando l'istanza della classe a cui aggiungi il riferimento associato viene deallocato. Ciò rende preferibili le operazioni di conservazione e copia preferite per le classi Objective-C. L'assegnazione è utile anche per evitare i cicli di conservazione purché il riferimento a zero sia eseguito con l'oggetto.

Costanti

OBJC_ASSOCIATION_ASSIGN Specifica un debole riferimento all'oggetto associato .

OBJC_ASSOCIATION_RETAIN_NONATOMIC Specifica un forte riferimento all'oggetto associato, e non l'associazione sia fatto atomicamente.

OBJC_ASSOCIATION_COPY_NONATOMIC Specifica che l'oggetto associato viene copiato, e che l'associazione non è fatta atomicamente.

OBJC_ASSOCIATION_RETAIN Specifica un riferimento forte a l'oggetto associato e che l'associazione è stata creata in modo atomico.

OBJC_ASSOCIATION_COPY Specifica che l'oggetto associato viene copiato, e che l'associazione è stata creata in modo atomico.

+0

E 'stato veloce :) ma non è la risposta che cercavo. dovrei avere stato più specifico nella mia domanda, sry. – radiospiel

+0

@ra diospiel Ho affermato che sopra, conservare o copiare rilascerà l'oggetto per te "l'oggetto verrà rilasciato quando la classe a cui aggiungi il riferimento associato viene rilasciato" – Joe

+0

@JoshCaswell Grazie, sarebbe il termine corretto. – Joe

2

Anche se è risposto alla tua domanda, ancora, dal momento che non hai incluso il testo documenti in sé, e la pagina si è collegato al non è più disponibile, qui è per la convenienza di altri:

Da apple Objective-C runtime di riferimento

void objc_removeAssociatedObjects(id object)

Rimuove tutte le associazioni per un dato oggetto.

Lo scopo principale di questa funzione è quello di rendere più facile per restituire un oggetto ad una "stato originario”. Si consiglia di non utilizzare questa funzione per rimozione generale di associazioni provenienti da oggetti, in quanto rimuove anche associazioni che altro i clienti possono aver aggiunto all'oggetto. in genere si dovrebbe usare objc_setAssociatedObject con un valore zero a chiaro un'associazione.

Problemi correlati