Ce fragment de documentation:
- (id) copier
Valeur de retour Objet renvoyé par la méthode de protocole NSCopying copyWithZone :, où la zone est nulle.
Discussion Cette méthode est pratique pour les classes qui adoptent le protocole NSCopying. Une exception est levée s'il n'y a pas d'implémentation pour copyWithZone :. NSObject ne prend pas lui-même en charge le protocole NSCopying. Les sous-classes doivent supporter le protocole et implémenter la méthode copyWithZone: Une version de sous-classe de la méthode copyWithZone: doit envoyer le message à super en premier, pour incorporer son implémentation, sauf si la sous-classe descend directement de NSObject.
Considérations particulières Si vous utilisez de la mémoire gérée (et non une récupération de place), cette méthode conserve le nouvel objet avant de le renvoyer. L'invocateur de la méthode, cependant, est responsable de la libération de l'objet retourné.
+1 bonne question – andy
En règle générale, dans Cocoa vous devez libérer tout ce que vous possédez. Vous possédez quelque chose si vous l'avez envoyé par message texte, copié, alloué ou conservé. Si vous n'avez pas appelé l'une de ces méthodes, vous ne la possédez pas et vous ne devriez pas la libérer. –