NSCoding
NSCoding протокол объявляет два метода, которые должен реализовать класс так, чтобы экземпляры того класса могли кодироваться и декодироваться. Эта возможность обеспечивает основание для архивации (где объекты и другие структуры сохранены на диске), и распределение (где объекты копируются в различные адресные пространства).
В соответствии с объектно-ориентированными принципами разработки, объект, закодированный или декодируемый, ответственен за кодирование и декодирование его переменных экземпляра. Кодер сообщает объекту сделать так путем вызова encodeWithCoder: или initWithCoder:. encodeWithCoder: сообщает объекту закодировать его переменные экземпляра к предоставленному кодеру; объект может получить этот метод любое число раз. initWithCoder: сообщает объекту инициализировать себя от данных в предоставленном кодере; как таковой, это заменяет любой другой метод инициализации и отправляется только один раз на объект. Любой класс объекта, который должен быть codable, должен принять NSCoding протокол и реализация его методы.
Важно рассмотреть возможные типы архивации, которую поддерживает кодер. На версии 10.2 OS X и позже, предпочтена включенная архивация. Вы, возможно, однако, должны поддерживать классическую архивацию. Для получения дополнительной информации см. Руководство по программированию Архивов и Сериализации.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
init (кодер:) - initWithCoder:ТребуемыйВозвращает объект, инициализированный из данных в данном unarchiver. (требуемый)
Параметры
decoderОбъект unarchiver.
Возвращаемое значение
self, инициализированное использование данных вdecoder.Обсуждение
Необходимо возвратиться
selfотinitWithCoder:. Если у Вас есть усовершенствованная потребность, требующая замены различным объектом после декодирования, можно сделать так вawakeAfterUsingCoder:.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
encodeWithCoder (_:) - encodeWithCoder:ТребуемыйКодирует получатель с помощью данного archiver. (требуемый)
Объявление
Swift
func encodeWithCoder(_encoder: NSCoder)Objective C
- (void)encodeWithCoder:(NSCoder *)encoderПараметры
encoderОбъект archiver.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
