Quando o NSCopying é necessário?
-
24-09-2019 - |
Pergunta
Eu sei que é necessário se o seu objeto for usado como chave em um NSDictionary.Existem outros momentos como este em que o NSCopying é necessário?
Se eu acho que não preciso que meus objetos de modelo estejam em conformidade com o NSCopying, provavelmente estou errado?
Solução
Quando está sendo passado para uma propriedade de cópia ou qualquer outro método que seja documentado como copiando seu argumento.
Outras dicas
Pense no protocolo NScopying como a versão Objective-C das rotinas de clonagem. Se um chamador clonasse seu objeto, qual é o comportamento que você gostaria? Se o seu objeto for composto exclusivamente de tipos primitivos, você não precisará se preocupar com isso. Mas se você tiver algum tipo complexo como membros, poderá cloná -los/copiá -los em vez de passar referências simples a eles.
NSCopying
tem uso bastante amplo.Sempre que um objeto possui algo que não deveria ser compartilhado com outros objetos, você precisará de uma cópia.Objetos mutáveis geralmente precisam ser copiados, embora NSMutableCopying
pode ser necessário em vez de NSCopying
.