NSKeyedUnarchiver
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в iOS 2.0 и позже.
NSKeyedUnarchiver, конкретный подкласс NSCoder, определяет методы для декодирования ряда именованных объектов (и скалярные значения) от включенного архива. Такие архивы производятся экземплярами NSKeyedArchiver класс.
Включенный архив кодируется как иерархия объектов. Каждый объект в иерархии служит пространством имен, в которое кодируются другие объекты. Объекты, доступные для декодирования, ограничиваются теми, которые были закодированы в непосредственном объеме определенного объекта. Объекты закодировали в другом месте в иерархии, не ли выше, чем, ниже, чем, или параллельный этому определенному объекту, доступны. Таким образом ключи, используемые определенным объектом закодировать его переменные экземпляра, должны быть уникальными только в рамках того объекта.
Если Вы вызываете один из decode... возвращаются методы этого класса с помощью ключа, не существующего в архиве, неположительное значение. Это значение варьируется декодируемым типом. Например, если ключ не существует в архиве, decodeBoolForKey: возвраты NOfalse, decodeIntForKey: возвраты 0, и decodeObjectForKey: возвраты nil.
NSKeyedUnarchiver поддержки ограничили приведение типа. Значение, закодированное как какой-либо тип целого числа, ли стандартный интервал или явное 32-разрядное или 64-разрядное целое число, может декодироваться с помощью какого-либо из целочисленных методов декодирования. Аналогично, значение, закодированное как плавание или дважды, может декодироваться или как плавание или как двойное значение. Если закодированное значение является слишком большим для адаптации в принужденном типе, метод декодирования бросает NSRangeException. Далее, при попытке принудить значение к несовместимому типу, например декодировании интервала как плавания, метод декодирования бросает NSInvalidUnarchiveOperationException.
-
Инициализирует получатель для декодирования архива, ранее закодированного
NSKeyedArchiver.Объявление
Swift
init(forReadingWithDatadata: NSData)Objective C
- (instancetype)initForReadingWithData:(NSData *)dataПараметры
dataАрхив, ранее закодированный
NSKeyedArchiver.Возвращаемое значение
NSKeyedUnarchiverобъект, инициализированный для для декодированияdata.Обсуждение
Когда Вы заканчиваете декодировать данные, необходимо вызвать
finishDecoding.Этот метод выдает исключение если
dataне допустимый архив.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Декодирует и возвращает граф объектов, ранее закодированный
NSKeyedArchiverи сохраненный в данномNSDataобъект.Объявление
Swift
class func unarchiveObjectWithData(_data: NSData) -> AnyObject?Objective C
+ (id)unarchiveObjectWithData:(NSData *)dataПараметры
dataГраф объектов, ранее закодированный
NSKeyedArchiver.Возвращаемое значение
Граф объектов, ранее закодированный
NSKeyedArchiverи сохраненный вdata.Обсуждение
Этот метод повышает
NSInvalidArchiveOperationExceptionеслиdataне допустимый архив.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Декодирует и возвращает граф объектов, ранее закодированный
NSKeyedArchiverзаписанный в файл в данном пути.Объявление
Swift
class func unarchiveObjectWithFile(_path: String) -> AnyObject?Objective C
+ (id)unarchiveObjectWithFile:(NSString *)pathПараметры
pathПуть к файлу, содержащему граф объектов, ранее закодированный
NSKeyedArchiver.Возвращаемое значение
Граф объектов, ранее закодированный
NSKeyedArchiverзаписанный в файлpath. Возвратыnilесли нет никакого файла вpath.Обсуждение
Этот метод повышает
NSInvalidArgumentExceptionесли файл вpathне содержит допустимый архив.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Указывает, требует ли получатель, чтобы все разархивированные классы соответствовали
NSSecureCoding.Объявление
Swift
func setRequiresSecureCoding(_flag: Bool)Objective C
- (void)setRequiresSecureCoding:(BOOL)flagПараметры
flagYEStrueесли получатель требуетNSSecureCoding;NOfalseесли нет.Обсуждение
При установке получателя для требования безопасного кодирования, он выдаст исключение, при попытке разархивировать класс, не соответствующий
NSSecureCoding.Безопасное требование кодирования для
NSKeyedUnarchiverразработан, чтобы быть установленным один раз на верхнем уровне и остаться на. После того, как включенный, пытаясь вызватьsetRequiresSecureCoding:со значениемNOfalseвыдаст исключение. Это должно предотвратить классы от выборочного выключения безопасного кодирования.Обратите внимание на то, что метод get находится на суперклассе,
NSCoder. ПосмотритеNSCoderдля получения дополнительной информации о безопасном кодировании.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 6.0 и позже.
-
Возвращает булево значение, указывающее, содержит ли архив значение для данного ключа в текущем объеме декодирования.
Объявление
Swift
func containsValueForKey(_key: String) -> BoolObjective C
- (BOOL)containsValueForKey:(NSString *)keyПараметры
keyКлюч в архиве в текущем объеме декодирования.
keyне должен бытьnil.Возвращаемое значение
YEStrueесли архив содержит значение дляkeyв текущем объеме декодирования, иначеNOfalse.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Декодирует булево значение, связанное с данным ключом.
Объявление
Swift
func decodeBoolForKey(_key: String) -> BoolObjective C
- (BOOL)decodeBoolForKey:(NSString *)keyПараметры
keyКлюч в архиве в текущем объеме декодирования.
keyне должен бытьnil.Возвращаемое значение
Булево значение связалось с ключом
key. ВозвратыNOfalseеслиkeyне существует.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
encodeBool:forKey:(NSKeyedArchiver) -
Декодирует поток байтов, связанных с данным ключом.
Объявление
Swift
func decodeBytesForKey(_key: String, returnedLengthlengthp: UnsafeMutablePointer<Int>) -> UnsafePointer<UInt8>Objective C
- (const uint8_t *)decodeBytesForKey:(NSString *)keyreturnedLength:(NSUInteger *)lengthpПараметры
keyКлюч в архиве в текущем объеме декодирования.
keyне должен бытьnil.lengthpПо возврату, содержит число возвращенных байтов.
Возвращаемое значение
Поток байтов связался с ключом
key. ВозвратыNULLеслиkeyне существует.Обсуждение
Возвращенное значение является указателем на временный буфер, принадлежавший получателю. Буфер уходит с unarchiver, не содержанием блока пула автовыпуска. Необходимо скопировать байты в собственный буфер при необходимости в данных для сохранения вне жизни получателя.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
encodeBytes:length:forKey:(NSKeyedArchiver) -
Декодирует двойную точность значение с плавающей точкой, связанное с данным ключом.
Объявление
Objective C
- (double)decodeDoubleForKey:(NSString *)keyПараметры
keyКлюч в архиве в текущем объеме декодирования.
keyне должен бытьnil.Возвращаемое значение
Двойная точность значение с плавающей точкой связалась с ключом
key. Возвраты0.0еслиkeyне существует.Обсуждение
Если заархивированное значение было закодировано как одинарная точность, тип принужден.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
encodeDouble:forKey:(NSKeyedArchiver)encodeFloat:forKey:(NSKeyedArchiver) -
Декодирует одинарную точность значение с плавающей точкой, связанное с данным ключом.
Объявление
Swift
func decodeFloatForKey(_key: String) -> FloatObjective C
- (float)decodeFloatForKey:(NSString *)keyПараметры
keyКлюч в архиве в текущем объеме декодирования.
keyне должен бытьnil.Возвращаемое значение
Одинарная точность значение с плавающей точкой связалась с ключом
key. Возвраты0.0еслиkeyне существует.Обсуждение
Если заархивированное значение было закодировано как двойная точность, тип принужден, освободив точность. Если заархивированное значение является слишком большим для одинарной точности, метод повышает
NSRangeException.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
encodeFloat:forKey:(NSKeyedArchiver)encodeDouble:forKey:(NSKeyedArchiver) -
Декодирует целочисленное значение, связанное с данным ключом.
Объявление
Swift
func decodeIntForKey(_key: String) -> Int32Objective C
- (int)decodeIntForKey:(NSString *)keyПараметры
keyКлюч в архиве в текущем объеме декодирования.
keyне должен бытьnil.Возвращаемое значение
Целочисленное значение связалось с ключом
key. Возвраты0еслиkeyне существует.Обсуждение
Если заархивированное значение было закодировано с различным размером, но является все еще целым числом, тип принужден. Если заархивированное значение является слишком большим для вписывания в размер по умолчанию для целого числа, метод повышает
NSRangeException.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
encodeInt:forKey:(NSKeyedArchiver) -
Декодирует 32-разрядное целочисленное значение, связанное с данным ключом.
Объявление
Swift
func decodeInt32ForKey(_key: String) -> Int32Objective C
- (int32_t)decodeInt32ForKey:(NSString *)keyПараметры
keyКлюч в архиве в текущем объеме декодирования.
keyне должен бытьnil.Возвращаемое значение
32-разрядное целочисленное значение связалось с ключом
key. Возвраты0еслиkeyне существует.Обсуждение
Если заархивированное значение было закодировано с различным размером, но является все еще целым числом, тип принужден. Если заархивированное значение является слишком большим для вписывания в 32-разрядное целое число, метод повышает
NSRangeException.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
encodeInt32:forKey:(NSKeyedArchiver) -
Декодирует 64-разрядное целочисленное значение, связанное с данным ключом.
Объявление
Swift
func decodeInt64ForKey(_key: String) -> Int64Objective C
- (int64_t)decodeInt64ForKey:(NSString *)keyПараметры
keyКлюч в архиве в текущем объеме декодирования.
keyне должен бытьnil.Возвращаемое значение
64-разрядное целочисленное значение связалось с ключом
key. Возвраты0еслиkeyне существует.Обсуждение
Если заархивированное значение было закодировано с различным размером, но является все еще целым числом, тип принужден.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
encodeInt64:forKey:(NSKeyedArchiver) -
Декодирует и возвращает объект, связанный с данным ключом.
Объявление
Swift
func decodeObjectForKey(_key: String) -> AnyObject?Objective C
- (id)decodeObjectForKey:(NSString *)keyПараметры
keyКлюч в архиве в текущем объеме декодирования.
keyне должен бытьnil.Возвращаемое значение
Объект связался с ключом
key. Возвратыnilеслиkeyне существует, или если значение дляkeynil.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
encodeObject:forKey:(NSKeyedArchiver) -
Говорит получателю, что Вы закончены, декодируя объекты.
Объявление
Swift
func finishDecoding()Objective C
- (void)finishDecodingОбсуждение
Вызов этого метода позволяет получателю уведомлять своего делегата и выполнять любые заключительные операции на архиве. Как только этот метод вызывается, получатель не может декодировать дальнейшие значения.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
delegateСвойствоДелегат получателя.
Объявление
Swift
unowned(unsafe) var delegate: NSKeyedUnarchiverDelegate?Objective C
@property(assign) id< NSKeyedUnarchiverDelegate > delegateОператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Добавляет перевод класса, отображающийся на
NSKeyedUnarchiverпосредством чего объекты, закодированные с данным именем класса, декодируются как экземпляры данного класса вместо этого.Объявление
Swift
class func setClass(_cls: AnyClass?, forClassNamecodedName: String)Objective C
+ (void)setClass:(Class)clsforClassName:(NSString *)codedNameПараметры
clsКласс, которым можно заменить экземпляры названного класса
codedName.codedNameОчевидное имя класса в архиве.
Обсуждение
При декодировании используется отображение перевода класса, только если никакой перевод не сочтен первым в отдельной карте перевода экземпляра.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Возвращает класс из который
NSKeyedUnarchiverинстанцирует закодированного объекта с данным именем класса.Объявление
Swift
class func classForClassName(_codedName: String) -> AnyClass?Objective C
+ (Class)classForClassName:(NSString *)codedNameПараметры
codedNameОчевидное имя класса в архиве.
Возвращаемое значение
Класс тот, от который
NSKeyedUnarchiverинстанцирует объекта, закодированного с именем классаcodedName. ВозвратыnilеслиNSKeyedUnarchiverне имеет перевода, отображающегося дляcodedName.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Добавляет перевод класса, отображающийся на получатель, посредством чего объекты, закодированные с данным именем класса, декодируются как экземпляры данного класса вместо этого.
Объявление
Swift
func setClass(_cls: AnyClass?, forClassNamecodedName: String)Objective C
- (void)setClass:(Class)clsforClassName:(NSString *)codedNameПараметры
clsКласс, которым можно заменить экземпляры названного класса
codedName.codedNameОчевидное имя класса в архиве.
Обсуждение
При декодировании карта перевода получателя переопределяет любой перевод, который может также присутствовать в карте класса (см. setClass:forClassName:).
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Возвращает класс, от которого получатель инстанцирует закодированного объекта с данным именем класса.
Объявление
Swift
func classForClassName(_codedName: String) -> AnyClass?Objective C
- (Class)classForClassName:(NSString *)codedNameПараметры
codedNameИмя класса.
Возвращаемое значение
Класс, от которого получатель инстанцирует закодированного объекта с именем класса
codedName. Возвратыnilесли получатель не имеет перевода, отображающегося дляcodedName.Обсуждение
Отдельная карта перевода класса не ищется.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Имена исключений, повышенных
NSKeyedUnarchiverесли существует проблема, извлекающая архив.Объявление
Swift
let NSInvalidUnarchiveOperationException: StringObjective C
NSString *NSInvalidUnarchiveOperationException;Константы
