Когда нужно NSCopying? - PullRequest
       6

Когда нужно NSCopying?

12 голосов
/ 04 апреля 2010

Я знаю, что это необходимо, если ваш объект будет использоваться в качестве ключа в NSDictionary.Есть ли другие случаи, когда это требуется для NSCopying?

Если я считаю, что мои объекты модели не нужны для соответствия NSCopying, возможно, я ошибаюсь?

Ответы [ 3 ]

7 голосов
/ 04 апреля 2010

Думайте о протоколе NSCopying как о версии C-процедуры клонирования. Если вызывающий объект должен был клонировать ваш объект, какое поведение вы бы хотели? Если ваш объект состоит исключительно из примитивных типов, вам не нужно беспокоиться об этом. Но если у вас есть какие-либо сложные типы в качестве членов, вы можете клонировать / скопировать их вместо передачи простых ссылок на них.

4 голосов
/ 04 апреля 2010

NSCopying имеет довольно широкое применение. Каждый раз, когда объект владеет чем-то, что он не должен делить с другими объектами, вам понадобится копия. Изменяемые объекты часто нужно копировать, хотя вместо NSCopying.

может потребоваться NSMutableCopying.
3 голосов
/ 04 апреля 2010

Когда оно передается в свойство copy или любой другой метод, который задокументирован как копирующий его аргумент.

...