NSKeyedArchiver
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в iOS 2.0 и позже.
NSKeyedArchiver
, конкретный подкласс NSCoder
, обеспечивает способ закодировать объекты (и скалярные значения) в архитектурно-независимый формат, который может быть сохранен в файле. При архивации ряда объектов информация о классе и переменные экземпляра для каждого объекта записаны в архив. NSKeyedArchiver
сопутствующий класс, NSKeyedUnarchiver
, декодирует данные в архиве и создает ряд объектов, эквивалентных исходному набору.
Включенный архив отличается от невключенного архива в этом все объекты и оценивает закодированный в архив, имена или ключи. При декодировании невключенного архива значения должны декодироваться в том же порядке, в котором они были закодированы. При декодировании включенного архива, потому что значения требуют по имени, значения могут декодироваться из последовательности или нисколько. Включенные архивы, поэтому, предоставляют лучшую поддержку для прямой совместимости и обратной совместимости.
Ключи, данные закодированным значениям, должны быть уникальными только в рамках текущего закодированного объекта. Включенный архив является иерархическим, таким образом, ключи, используемые объектом для кодирования его переменных экземпляра, не конфликтуют с ключами, используемыми объектом B, даже если A и B являются экземплярами того же класса. В отдельном объекте, однако, ключи, используемые подклассом, могут конфликтовать с ключами, используемыми в его суперклассах.
NSArchiver
объект может записать архивные данные в файл или в непостоянный объект данных (экземпляр NSMutableData
) то, что Вы обеспечиваете.
-
Возвращает получатель, инициализированный для кодирования архива в данный непостоянный объект данных.
Объявление
Swift
init(forWritingWithMutableData
data
: 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)
rootObject
toFile:(NSString *)path
Параметры
rootObject
Корень графа объектов для архивации.
path
Путь файла, в котором можно записать архив.
Возвращаемое значение
YES
true
если работа была успешна, иначеNO
false
.Обсуждение
Формат архива
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: NSPropertyListFormat
Objective 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
Параметры
flag
YES
true
если получатель требуетNSSecureCoding
;NO
false
если нет.Обсуждение
При установке получателя для требования безопасного кодирования, он выдаст исключение, при попытке заархивировать класс, не соответствующий
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)
boolv
forKey:(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 *)
bytesp
length:(NSUInteger)lenv
forKey:(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)
objv
forKey:(NSString *)key
Параметры
objv
Объект закодировать.
key
Ключ, с которым можно связать закодированное значение. Это значение не должно быть
nil
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 2.0 и позже.
-
Кодирует данный
double
значение и партнеры это с данным ключом.Объявление
Objective C
- (void)encodeDouble:(double)
realv
forKey:(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)
realv
forKey:(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)
intv
forKey:(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)
intv
forKey:(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)
intv
forKey:(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)
objv
forKey:(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 *)
codedName
forClass:(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 *)
codedName
forClass:(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: String
Objective C
extern NSString *NSInvalidArchiveOperationException;
Константы
-
Ключи это
NSKeyedArchiver
использование в иерархии закодированных объектов.Объявление
Swift
let NSKeyedArchiveRootObjectKey: String
Objective C
extern NSString * const NSKeyedArchiveRootObjectKey;
Константы
-
NSKeyedArchiveRootObjectKey
Архивы создали использование метода класса
archivedDataWithRootObject:
используйте этот ключ для корневого объекта в иерархии закодированных объектов.NSKeyedUnarchiver
метод классаunarchiveObjectWithData:
ищет этот корневой ключ также.Доступный в iOS 7.0 и позже.
-