Подтвердить что ты не робот

Когда требуется NSCopying?

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

NSCopying имеет довольно широкое использование. В любое время, когда объект владеет чем-то, что он не должен использовать с другими объектами, вам понадобится копия. Часто необходимо скопировать объекты Mutable, но NSMutableCopying может понадобиться NSMutableCopying.