Когда NSCopying необходим?

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

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

12
задан andyvn22 4 April 2010 в 02:25
поделиться

3 ответа

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

3
ответ дан 2 December 2019 в 21:02
поделиться

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

4
ответ дан 2 December 2019 в 21:02
поделиться

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

7
ответ дан 2 December 2019 в 21:02
поделиться