NSUnarchiver
NSUnarchiver, конкретный подкласс NSCoder, определяет методы для декодирования ряда объектов Objective C от архива. Такие архивы производятся объектами NSArchiver класс.
В OS X v10.2 и позже, NSArchiver и NSUnarchiver были заменены NSKeyedArchiver и NSKeyedUnarchiver соответственно — см. Руководство по программированию Архивов и Сериализации.
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
init (forReadingWithData:) - initForReadingWithData:Определяемый инициализаторВозвраты
NSUnarchiverобъект, инициализированный для чтения архива из объекта определенных данных.Объявление
Swift
init?(forReadingWithDatadata: NSData)Objective C
- (instancetype)initForReadingWithData:(NSData *)dataПараметры
dataАрхивные данные.
Возвращаемое значение
NSUnarchiverобъект, инициализированный для чтения архива изdata. Возвратыnilеслиdataне допустимый архив.Обсуждение
Метод декодирует число версии системы, заархивированное в
dataподготавливаетсяNSUnarchiverобъект для последующего вызоваdecodeObject.Повышения
NSInvalidArgumentExceptionеслиdatanil.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Декодирует и возвращает объект, заархивированный в данном
NSDataобъект.Объявление
Swift
class func unarchiveObjectWithData(_data: NSData) -> AnyObject?Objective C
+ (id)unarchiveObjectWithData:(NSData *)dataПараметры
dataNSDataобъект, содержащий архив, создал использованиеNSArchiver.Возвращаемое значение
Объект или граф объектов, заархивированный в
data. Возвратыnilеслиdataне может быть разархивирован.Обсуждение
Этот метод вызывает
initForReadingWithData:иdecodeObjectсоздать временный файлNSUnarchiverобъект, декодирующий объект. Если архивный объект является корнем графика объектов, весь график разархивирован.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
encodeRootObject:(NSArchiver) -
Декодирует и возвращает объект, заархивированный в файле
path.Объявление
Swift
class func unarchiveObjectWithFile(_path: String) -> AnyObject?Objective C
+ (id)unarchiveObjectWithFile:(NSString *)pathПараметры
pathПуть к файлу, чем содержит создаваемое использование архива
NSArchiver.Возвращаемое значение
Объект или граф объектов, заархивированный в файле в
path. Возвратыnilесли файл вpathне может быть разархивирован.Обсуждение
Этот удобный метод читает файл путем вызова
NSDataметодdataWithContentsOfFile:и затем вызываетunarchiveObjectWithData:.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
принять участие принять участиеСвойствоБулево значение, указывающее, достиг ли получатель конца закодированных данных при декодировании. (только для чтения)
Объявление
Swift
var atEnd: Bool { get }Objective C
@property(getter=isAtEnd, readonly) BOOL atEndОбсуждение
YEStrueесли получатель достиг конца закодированных данных при декодировании, иначеNOfalse.Можно вызвать этот метод после вызова
decodeObjectобнаружить, содержит ли архив дополнительные данные после закодированного графа объектов. Если это делает, можно или проигнорировать эту аномалию или считать его ошибкой.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.10 и позже.
-
Возвращается зона памяти раньше выделяла декодируемые объекты.
Объявление
Objective C
- (NSZone *)objectZoneВозвращаемое значение
Зона памяти раньше выделяла декодируемые объекты.
Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Устанавливает зону памяти, используемую для выделения декодируемых объектов.
Объявление
Objective C
- (void)setObjectZone:(NSZone *)zoneПараметры
zoneЗона памяти раньше выделяла декодируемые объекты.
Обсуждение
Если
zonenil, или если этот метод никогда не вызывается, зона по умолчанию используется, как даноNSDefaultMallocZone().Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в OS X v10.0 и позже.
См. также
-
systemVersion systemVersionСвойствоЧисло версии системы в действительности, когда создавался архив. (только для чтения)
Объявление
Swift
var systemVersion: UInt32 { get }Objective C
@property(readonly) unsigned int systemVersionОбсуждение
Эта информация доступна, как только был инициализирован получатель.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает имя класса, используемого при инстанцировании объектов, очевидный класс которых, согласно заархивированным данным, является именем.
Объявление
Параметры
nameInArchiveИмя класса.
Возвращаемое значение
Имя класса использовало при инстанцировании объектов, очевидный класс которых, согласно заархивированным данным,
nameInArchive. ВозвратыnameInArchiveесли никакое имя замены не было указано с помощью метода класса (не метод экземпляра)decodeClassName:asClassName:.Обсуждение
Обратите внимание на то, что каждый отдельный экземпляр
NSUnarchiverможет быть дан его собственные отображения имени класса путем вызова метода экземпляраdecodeClassName:asClassName:.NSUnarchiverкласс не имеет никакой информации об этих специфичных для экземпляра отображениях, однако, таким образом, они не влияют на возвращаемое значениеclassNameDecodedForArchiveClassName:.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Сообщает экземплярам
NSUnarchiverиспользовать класс с именем при инстанцировании объектов, очевидный класс которых, согласно заархивированным данным, является другим именем.Объявление
Параметры
nameInArchiveОчевидное имя класса в архиве.
trueNameИмя класса для использования при инстанцировании объектов, очевидный класс которых, согласно заархивированным данным,
nameInArchive.Обсуждение
Этот метод включает простое преобразование разархивированных данных, когда имя класса изменилось, так как архив создавался.
Обратите внимание на то, что существует также метод экземпляра того же имени. Экземпляр
NSUnarchiverможет поддержать его собственное отображение имен классов. Однако, если и метод класса и метод экземпляра были вызваны с помощью идентичного значения дляnameInArchive, метод класса имеет приоритет.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает имя класса, который будет использоваться при инстанцировании объектов, очевидный класс которых, согласно заархивированным данным, является именем.
Объявление
Параметры
nameInArchiveОчевидное имя класса в архиве.
Возвращаемое значение
Имя класса, который будет использоваться при инстанцировании объектов, очевидный класс которых, согласно заархивированным данным,
nameInArchive. ВозвратыnameInArchiveесли имя замены не было указано с помощью метода экземпляра (не метод класса)decodeClassName:asClassName:.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Дает получателю команду использовать класс с именем при инстанцировании объектов, очевидный класс которых, согласно заархивированным данным, является другим именем.
Объявление
Параметры
nameInArchiveОчевидное имя класса в архиве.
trueNameИмя класса для использования при инстанцировании объектов, очевидный класс которых, согласно заархивированным данным,
nameInArchive.Обсуждение
Этот метод включает простое преобразование разархивированных данных, когда имя класса изменилось, так как архив создавался.
Обратите внимание на то, что существует также метод класса того же имени. Метод класса имеет приоритет в случае конфликтов.
Оператор импорта
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.Обсуждение
newObjectможет иметь различный класс от объекта и отображения класса, установленныеclassNameDecodedForArchiveClassName:иdecodeClassName:asClassName:проигнорированы.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
