Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы основы ссылка на протокол NSCopying

Опции
Развертывание Target:

На этой странице
Язык:

NSCopying

NSCopying протокол объявляет метод для того, чтобы предоставить функциональные копии объекта. Точное значение «копии» может варьироваться от класса до класса, но копия должна быть функционально независимым объектом со значениями, идентичными оригиналу в то время, когда была сделана копия. Копия, произведенная с NSCopying неявно сохраняется отправителем, кто ответственен за выпуск его.

NSCopying объявляет один метод, copyWithZone:, но копирование обычно вызывается с удобным методом copy. copy метод определяется для всех объектов, наследовавшихся от NSObject и просто вызывает copyWithZone: с зоной по умолчанию.

Ваши опции для реализации этого протокола следующие:

  • Реализация NSCopying использование alloc и init... в не наследовавшихся классах copyWithZone:.

  • Реализация NSCopying путем вызова суперкласса copyWithZone: когда NSCopying поведение наследовано. Если реализация суперкласса могла бы использовать NSCopyObject функционируйте, сделайте явные присвоения на переменные экземпляра указателя для сохраненных объектов.

  • Реализация NSCopying путем сохранения оригинала вместо того, чтобы создать новую копию, когда класс и его содержание являются неизменными.

Если подкласс наследовал NSCopying от своего суперкласса и объявляет дополнительные переменные экземпляра, подкласс должен переопределить copyWithZone: должным образом обработать его собственные переменные экземпляра, вызывая реализацию суперкласса сначала.

Наследование


Не применимый

Соответствует


Не применимый

Оператор импорта


Swift

import Foundation

Objective C

@import Foundation;

Доступность


Доступный в OS X v10.0 и позже.
  • copyWithZone (_:) - copyWithZone: Требуемый

    Возвращает новый экземпляр, это - копия получателя. (требуемый)

    Объявление

    Swift

    func copyWithZone(_ zone: NSZone) -> AnyObject

    Objective C

    - (id)copyWithZone:(NSZone *)zone

    Параметры

    zone

    Зона идентифицирует область памяти, от которой можно выделить для нового экземпляра. Если zone NULL, новый экземпляр выделяется от зоны по умолчанию, возвращающейся из функции NSDefaultMallocZone.

    Обсуждение

    Возвращенный объект неявно сохраняется отправителем, кто ответственен за выпуск его. Копия возвратилась, является неизменным, если рассмотрение, “неизменное по сравнению с непостоянным”, применяется к принимающему объекту; иначе точный характер копии определяется классом.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – mutableCopyWithZone: (Протокол NSMutableCopying)
    – copy (Класс NSObject)