NSArchiver
NSArchiver, конкретный подкласс NSCoder, обеспечивает способ закодировать объекты в архитектурно-независимый формат, который может быть сохранен в файле. При архивации графика объектов информация о классе и переменные экземпляра для каждого объекта записаны в архив. NSArchiverсопутствующий класс, NSUnarchiver, декодирует данные в архиве и создает график объектов, эквивалентных исходному набору.
NSArchiver хранит архивные данные в непостоянном объекте данных (NSMutableData). После кодирования объектов Вы можете иметь NSArchiver возразите сразу пишут этот непостоянный объект данных в файл, или можно получить непостоянный объект данных для некоторого другого использования.
В OS X v10.2 и позже, NSArchiver и NSUnarchiver были заменены NSKeyedArchiver и NSKeyedUnarchiver соответственно — см. Руководство по программированию Архивов и Сериализации.
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
init (forWritingWithMutableData:) - initForWritingWithMutableData:Определяемый инициализаторВозвращает archiver, инициализированный для кодирования потока и информации о версии в данный непостоянный объект данных.
Объявление
Swift
init(forWritingWithMutableDatadata: NSMutableData)Objective C
- (instancetype)initForWritingWithMutableData:(NSMutableData *)dataПараметры
dataНепостоянный объект данных, в который можно записать архив. Это значение не должно быть
nil.Возвращаемое значение
Объект archiver, инициализированный для кодирования потока и информации о версии в
data.Обсуждение
Повышения
NSInvalidArgumentExceptionеслиdatanil.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает объект данных, содержащий закодированную форму графа объектов, корневой объект которого дан.
Объявление
Swift
class func archivedDataWithRootObject(_rootObject: AnyObject) -> NSDataObjective C
+ (NSData *)archivedDataWithRootObject:(id)rootObjectПараметры
rootObjectКорневой объект графа объектов для архивации.
Возвращаемое значение
Объект данных, содержащий закодированную форму графа объектов, корневой объект которого
rootObject.Обсуждение
Этот метод вызывает
initForWritingWithMutableData:иencodeRootObject:создать временный archiver, кодирующий граф объектов.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Создает временный экземпляр
NSArchiverи архивирует граф объектов путем кодирования его в объект данных и записи получающегося объекта данных в указанный файл.Объявление
Swift
class func archiveRootObject(_rootObject: AnyObject, toFilepath: String) -> BoolObjective C
+ (BOOL)archiveRootObject:(id)rootObjecttoFile:(NSString *)pathПараметры
rootObjectКорневой объект графа объектов для архивации.
pathРасположение файл, в который можно записать архив.
Возвращаемое значение
YEStrueесли архив был записан успешно, иначеNOfalse.Обсуждение
Этот удобный метод вызывает
archivedDataWithRootObject:получить закодированные данные, и затем отправляет тому объекту данных сообщениеwriteToFile:atomically:, использованиеpathдля первого параметра иYEStrueдля второго.Заархивированные данные должны быть получены от архива объектом NSUnarchiver.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
+ archivedDataWithRootObject:– writeToFile:atomically:(NSData) -
Архивирует данный объект вместе со всеми объектами, с которыми он подключен.
Объявление
Swift
func encodeRootObject(_rootObject: AnyObject)Objective C
- (void)encodeRootObject:(id)rootObjectПараметры
rootObjectКорневой объект графа объектов для архивации.
Обсуждение
Если с каким-либо объектом встречаются несколько раз при пересечении графика, он кодируется только один раз, но сохранены многократные ссылки на него. (См. Руководство по программированию Архивов и Сериализации для получения дополнительной информации.)
Это сообщение не должно быть отправлено несколько раз в данный
NSArchiverобъект;NSInvalidArgumentExceptionесли корневой объект был уже закодирован, повышен. Если необходимо закодировать многократные графы объектов, поэтому, не пытайтесь снова использоватьNSArchiverэкземпляр; вместо этого, создайте новый для каждого графика.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Условно архивирует данный объект.
Объявление
Swift
func encodeConditionalObject(_object: AnyObject?)Objective C
- (void)encodeConditionalObject:(id)objectПараметры
objectОбъект заархивировать.
Обсуждение
Этот метод переопределяет реализацию суперкласса для разрешения
objectбыть закодированным, только если это также кодируется безусловно другим объектом в графе объектов. Условное кодирование позволяет, Вы закодировать одну часть графика отсоединились от остальных. (См. Руководство по программированию Архивов и Сериализации для получения дополнительной информации.)Этот метод должен быть вызван только из
encodeWithCoder:метод. Еслиobjectnil,NSArchiverобъект кодирует его безусловно какnil. Этот метод повышаетNSInvalidArgumentExceptionесли не был закодирован никакой корневой объект.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
archiverData archiverDataСвойствоАрхивные данные получателя. (только для чтения)
Объявление
Swift
var archiverData: NSMutableData { get }Objective C
@property(readonly, retain) NSMutableData *archiverDataОбсуждение
Возвращенный объект данных - тот же самый указанный как параметр
initForWritingWithMutableData:. Это содержит любые данные, был закодирован к настоящему времени вызовами различных методов кодирования. Является самым безопасным не вызвать этот метод до окончанияencodeRootObject:возвратился. Другими словами, несмотря на то, что для класса возможно вызвать этот метод изencodeWithCoder:метод, тот метод не должен изменять данные.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращается имя класса раньше архивировало экземпляры класса с данным истинным именем.
Объявление
Параметры
trueNameНастоящее имя закодированного класса.
Возвращаемое значение
Имя класса раньше архивировало экземпляры класса
trueName.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Кодирует имя замены для класса с данным истинным именем.
Объявление
Параметры
trueNameНастоящее имя класса в заархивированном графе объектов.
inArchiveNameИмя класса для использования в архиве вместо
trueName.Обсуждение
Любые объекты, с которыми впоследствии встречаются, класса
trueNameархивируются как экземпляры классаinArchiveName. Является самым безопасным не вызвать этот метод во время процесса архивации (т.е. вencodeWithCoder:метод). Вместо этого вызовите его преждеencodeRootObject:.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Заставляет получатель обрабатывать последующие запросы для кодирования данного объекта, как будто они были запросами для кодирования другого данного объекта.
Объявление
Swift
func replaceObject(_object: AnyObject, withObjectnewObject: AnyObject)Objective C
- (void)replaceObject:(id)objectwithObject:(id)newObjectПараметры
objectОбъект в заархивированном графе объектов.
newObjectОбъект, которым можно заменить
objectв архиве.Обсуждение
Оба
objectиnewObjectдолжны быть доступные объекты.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Повышенный
NSArchiverесли существует инициализация задач или кодирование.Объявление
Swift
let NSInconsistentArchiveException: NSString!Objective C
extern NSString *NSInconsistentArchiveException;Константы
-
NSInconsistentArchiveExceptionNSInconsistentArchiveExceptionИмя исключения, повышенного
NSArchiverесли существует инициализация задач или кодирование.Доступный в OS X v10.0 и позже.
-
