NSKeyedArchiver
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в iOS 2.0 и позже.
NSKeyedArchiver, конкретный подкласс NSCoder, обеспечивает способ закодировать объекты (и скалярные значения) в архитектурно-независимый формат, который может быть сохранен в файле. При архивации ряда объектов информация о классе и переменные экземпляра для каждого объекта записаны в архив. NSKeyedArchiverсопутствующий класс, NSKeyedUnarchiver, декодирует данные в архиве и создает ряд объектов, эквивалентных исходному набору.
Включенный архив отличается от невключенного архива в этом все объекты и оценивает закодированный в архив, имена или ключи. При декодировании невключенного архива значения должны декодироваться в том же порядке, в котором они были закодированы. При декодировании включенного архива, потому что значения требуют по имени, значения могут декодироваться из последовательности или нисколько. Включенные архивы, поэтому, предоставляют лучшую поддержку для прямой совместимости и обратной совместимости.
Ключи, данные закодированным значениям, должны быть уникальными только в рамках текущего закодированного объекта. Включенный архив является иерархическим, таким образом, ключи, используемые объектом для кодирования его переменных экземпляра, не конфликтуют с ключами, используемыми объектом B, даже если A и B являются экземплярами того же класса. В отдельном объекте, однако, ключи, используемые подклассом, могут конфликтовать с ключами, используемыми в его суперклассах.
NSArchiver объект может записать архивные данные в файл или в непостоянный объект данных (экземпляр NSMutableData) то, что Вы обеспечиваете.
-
Возвращает получатель, инициализированный для кодирования архива в данный непостоянный объект данных.
Объявление
Swift
init(forWritingWithMutableDatadata: NSMutableData)Objective C
- (instancetype)initForWritingWithMutableData:(NSMutableData *)dataПараметры
dataНепостоянный объект данных, в который записан архив.
Возвращаемое значение
Получатель, инициализированный для кодирования архива в
data.Обсуждение
Когда Вы заканчиваете кодировать данные, необходимо вызвать
finishEncodingв которой точкеdataзаполнено. Формат получателяNSPropertyListBinaryFormat_v1_0.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Возвраты
NSDataобъект, содержащий закодированную форму графа объектов, корневой объект которого дан.Объявление
Swift
class func archivedDataWithRootObject(_rootObject: AnyObject) -> NSDataObjective C
+ (NSData *)archivedDataWithRootObject:(id)rootObjectПараметры
rootObjectКорень графа объектов для архивации.
Возвращаемое значение
NSDataобъект, содержащий закодированную форму графа объектов, корневой объект которогоrootObject. Формат архиваNSPropertyListBinaryFormat_v1_0.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Архивирует граф объектов, базированный в данном объекте путем кодирования его в объект данных, тогда атомарно пишет получающийся объект данных в файл в данном пути и возвращает булево значение, указывающее, была ли работа успешна.
Объявление
Swift
class func archiveRootObject(_rootObject: AnyObject, toFilepath: String) -> BoolObjective C
+ (BOOL)archiveRootObject:(id)rootObjecttoFile:(NSString *)pathПараметры
rootObjectКорень графа объектов для архивации.
pathПуть файла, в котором можно записать архив.
Возвращаемое значение
YEStrueесли работа была успешна, иначеNOfalse.Обсуждение
Формат архива
NSPropertyListBinaryFormat_v1_0.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Дает получателю команду создавать заключительный поток данных.
Объявление
Swift
func finishEncoding()Objective C
- (void)finishEncodingОбсуждение
Больше значений не может быть закодировано после того, как этот метод вызывают. Необходимо вызвать этот метод по окончании.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
-
outputFormatСвойствоФормат, в котором получатель кодирует свои данные.
Объявление
Swift
var outputFormat: NSPropertyListFormatObjective C
@property NSPropertyListFormat outputFormatОбсуждение
Доступные форматы
NSPropertyListXMLFormat_v1_0иNSPropertyListBinaryFormat_v1_0.Оператор импорта
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.Обратите внимание на то, что метод get находится на суперклассе,
NSCoder. ПосмотритеNSCoderдля получения дополнительной информации о безопасном кодировании.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 6.0 и позже.
-
Кодирует данное булево значение и связывает его с данным ключом.
Объявление
Swift
func encodeBool(_boolv: Bool, forKeykey: String)Objective C
- (void)encodeBool:(BOOL)boolvforKey:(NSString *)keyПараметры
boolvЗначение для кодирования.
keyКлюч, с которым можно связаться
boolv. Это значение не должно бытьnil.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
decodeBoolForKey:(NSKeyedUnarchiver) -
Кодирует данное число байтов от данного массива C байтов и связывает их с данный ключ.
Объявление
Objective C
- (void)encodeBytes:(const uint8_t *)bytesplength:(NSUInteger)lenvforKey:(NSString *)keyПараметры
bytespМассив C байтов для кодирования.
lenvЧисло байтов от
bytespзакодировать.keyКлюч, с которым можно связать закодированное значение. Это значение не должно быть
nil.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
decodeBytesForKey:returnedLength:(NSKeyedUnarchiver) -
Кодирует ссылку на данный объект и связывает его с данным ключом, только если это было безусловно закодировано в другом месте в архиве с
encodeObject:forKey:.Объявление
Swift
func encodeConditionalObject(_objv: AnyObject?, forKeykey: String)Objective C
- (void)encodeConditionalObject:(id)objvforKey:(NSString *)keyПараметры
objvОбъект закодировать.
keyКлюч, с которым можно связать закодированное значение. Это значение не должно быть
nil.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Кодирует данный
doubleзначение и партнеры это с данным ключом.Объявление
Objective C
- (void)encodeDouble:(double)realvforKey:(NSString *)keyПараметры
realvЗначение для кодирования.
keyКлюч, с которым можно связаться
realv. Это значение не должно бытьnil.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
decodeDoubleForKey:(NSKeyedUnarchiver)decodeFloatForKey:(NSKeyedUnarchiver) -
Кодирует данный
floatзначение и партнеры это с данным ключом.Объявление
Swift
func encodeFloat(_realv: Float, forKeykey: String)Objective C
- (void)encodeFloat:(float)realvforKey:(NSString *)keyПараметры
realvЗначение для кодирования.
keyКлюч, с которым можно связаться
realv. Это значение не должно бытьnil.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
decodeFloatForKey:(NSKeyedUnarchiver)decodeDoubleForKey:(NSKeyedUnarchiver) -
Кодирует данный
intзначение и партнеры это с данным ключом.Объявление
Swift
func encodeInt(_intv: Int32, forKeykey: String)Objective C
- (void)encodeInt:(int)intvforKey:(NSString *)keyПараметры
intvЗначение для кодирования.
keyКлюч, с которым можно связаться
intv. Это значение не должно бытьnil.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
decodeIntForKey:(NSKeyedUnarchiver) -
Кодирует данное 32-разрядное целочисленное значение и связывает его с данным ключом.
Объявление
Swift
func encodeInt32(_intv: Int32, forKeykey: String)Objective C
- (void)encodeInt32:(int32_t)intvforKey:(NSString *)keyПараметры
intvЗначение для кодирования.
keyКлюч, с которым можно связаться
intv. Это значение не должно бытьnil.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
decodeInt32ForKey:(NSKeyedUnarchiver) -
Кодирует данное 64-разрядное целочисленное значение и связывает его с данным ключом.
Объявление
Swift
func encodeInt64(_intv: Int64, forKeykey: String)Objective C
- (void)encodeInt64:(int64_t)intvforKey:(NSString *)keyПараметры
intvЗначение для кодирования.
keyКлюч, с которым можно связаться
intv. Это значение не должно бытьnil.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
decodeInt64ForKey:(NSKeyedUnarchiver) -
Кодирует данный объект и связывает его с данным ключом.
Объявление
Swift
func encodeObject(_objv: AnyObject?, forKeykey: String)Objective C
- (void)encodeObject:(id)objvforKey:(NSString *)keyПараметры
objvЗначение для кодирования. Это значение может быть
nil.keyКлюч, с которым можно связаться
objv. Это значение не должно бытьnil.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
decodeObjectForKey:(NSKeyedUnarchiver)
-
delegateСвойствоДелегат archiver.
Объявление
Swift
unowned(unsafe) var delegate: NSKeyedArchiverDelegate?Objective C
@property(assign) id< NSKeyedArchiverDelegate > delegateОператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Добавляет перевод класса, отображающийся на
NSKeyedArchiverпосредством чего экземпляры данного класса кодируются с данным именем класса вместо их реальных имен классов.Объявление
Swift
class func setClassName(_codedName: String?, forClasscls: AnyClass)Objective C
+ (void)setClassName:(NSString *)codedNameforClass:(Class)clsПараметры
codedNameИмя класса это
NSKeyedArchiverиспользование вместоcls.clsКласс, для которого можно установить отображение перевода.
Обсуждение
При кодировании используется отображение перевода класса, только если никакой перевод не сочтен первым в отдельной карте перевода экземпляра.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Возвращает имя класса с который
NSKeyedArchiverкодирует экземпляры данного класса.Объявление
Swift
class func classNameForClass(_cls: AnyClass) -> String?Objective C
+ (NSString *)classNameForClass:(Class)clsПараметры
clsКласс, для которого можно определить отображение перевода.
Возвращаемое значение
Имя класса то, с который
NSKeyedArchiverкодирует экземплярыcls. ВозвратыnilеслиNSKeyedArchiverне имеет перевода, отображающегося дляcls.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Добавляет перевод класса, отображающийся на получатель, посредством чего экземпляры данного класса кодируются с данным именем класса вместо их реальных имен классов.
Объявление
Swift
func setClassName(_codedName: String?, forClasscls: AnyClass)Objective C
- (void)setClassName:(NSString *)codedNameforClass:(Class)clsПараметры
codedNameИмя класса, вместо которого получатель использует использование
cls.clsКласс, для которого можно установить отображение перевода.
Обсуждение
При кодировании карта перевода получателя переопределяет любой перевод, который может также присутствовать в карте класса.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Возвращает имя класса, с которым получатель кодирует экземпляры данного класса.
Объявление
Swift
func classNameForClass(_cls: AnyClass) -> String?Objective C
- (NSString *)classNameForClass:(Class)clsПараметры
clsКласс, для которого можно определить отображение перевода.
Возвращаемое значение
Имя класса, с которым получатель кодирует экземпляры
cls. Возвратыnilесли получатель не имеет перевода, отображающегося дляcls. Отдельная карта перевода класса не ищется.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Имена исключений, повышенных
NSKeyedArchiverесли существует проблема, создающая архив.Объявление
Swift
let NSInvalidArchiveOperationException: StringObjective C
extern NSString *NSInvalidArchiveOperationException;Константы
-
Ключи это
NSKeyedArchiverиспользование в иерархии закодированных объектов.Объявление
Swift
let NSKeyedArchiveRootObjectKey: StringObjective C
extern NSString * const NSKeyedArchiveRootObjectKey;Константы
-
NSKeyedArchiveRootObjectKeyАрхивы создали использование метода класса
archivedDataWithRootObject:используйте этот ключ для корневого объекта в иерархии закодированных объектов.NSKeyedUnarchiverметод классаunarchiveObjectWithData:ищет этот корневой ключ также.Доступный в iOS 7.0 и позже.
-
