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?(forReadingWithData
data
: NSData)Objective C
- (instancetype)initForReadingWithData:(NSData *)
data
Параметры
data
Архивные данные.
Возвращаемое значение
NSUnarchiver
объект, инициализированный для чтения архива изdata
. Возвратыnil
еслиdata
не допустимый архив.Обсуждение
Метод декодирует число версии системы, заархивированное в
data
подготавливаетсяNSUnarchiver
объект для последующего вызоваdecodeObject
.Повышения
NSInvalidArgumentException
еслиdata
nil
.Оператор импорта
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
Параметры
data
NSData
объект, содержащий архив, создал использование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
Обсуждение
YES
true
если получатель достиг конца закодированных данных при декодировании, иначеNO
false
.Можно вызвать этот метод после вызова
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
Зона памяти раньше выделяла декодируемые объекты.
Обсуждение
Если
zone
nil
, или если этот метод никогда не вызывается, зона по умолчанию используется, как дано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)
object
withObject:(id)newObject
Параметры
object
Архивный объект для замены.
newObject
Объект, которым можно заменить
object
.Обсуждение
newObject
может иметь различный класс от объекта и отображения класса, установленныеclassNameDecodedForArchiveClassName:
иdecodeClassName:asClassName:
проигнорированы.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.