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(forWritingWithMutableData
data
: NSMutableData)Objective C
- (instancetype)initForWritingWithMutableData:(NSMutableData *)
data
Параметры
data
Непостоянный объект данных, в который можно записать архив. Это значение не должно быть
nil
.Возвращаемое значение
Объект archiver, инициализированный для кодирования потока и информации о версии в
data
.Обсуждение
Повышения
NSInvalidArgumentException
еслиdata
nil
.Оператор импорта
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)
rootObject
toFile:(NSString *)path
Параметры
rootObject
Корневой объект графа объектов для архивации.
path
Расположение файл, в который можно записать архив.
Возвращаемое значение
YES
true
если архив был записан успешно, иначеNO
false
.Обсуждение
Этот удобный метод вызывает
archivedDataWithRootObject:
получить закодированные данные, и затем отправляет тому объекту данных сообщениеwriteToFile:atomically:
, использованиеpath
для первого параметра иYES
true
для второго.Заархивированные данные должны быть получены от архива объектом 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:
метод. Еслиobject
nil
,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)
object
withObject:(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;
Константы
-
NSInconsistentArchiveException
NSInconsistentArchiveException
Имя исключения, повышенного
NSArchiver
если существует инициализация задач или кодирование.Доступный в OS X v10.0 и позже.
-