2010-04-04 14 views
12

So che è necessario se il tuo oggetto sarà usato come chiave in un NSDictionary. Ci sono altre volte come questa che è necessario NSCopying?Quando è necessario NSCopying?

Se penso di non aver bisogno che i miei oggetti modello siano conformi a NSCopying, probabilmente ho torto?

risposta

3

Quando viene passato a una proprietà di copia o qualsiasi altro metodo documentato come copia del suo argomento.

4

NSCopying ha un utilizzo abbastanza ampio. Ogni volta che un oggetto possiede qualcosa che non dovrebbe condividere con altri oggetti, avrai bisogno di una copia. Spesso è necessario copiare gli oggetti mutabili, sebbene sia necessario NSMutableCopying anziché NSCopying.

7

Pensate al protocollo NSCopying come alla versione C obiettiva delle routine di clonazione. Se un chiamante doveva clonare il tuo oggetto, qual è il comportamento che vorresti? Se il tuo oggetto è composto esclusivamente da tipi primitivi, non devi preoccuparti di questo. Ma se si hanno tipi complessi come membri, si potrebbe desiderare di clonarli/copiarli invece di passarci semplici riferimenti.

Problemi correlati