Class

NSKeyedArchiver

A coder that stores an object's data to an archive referenced by keys.

Declaration

@interface NSKeyedArchiver : NSCoder

Overview

NSKeyedArchiver, a concrete subclass of NSCoder, provides a way to encode objects (and scalar values) into an architecture-independent format that can be stored in a file. When you archive a set of objects, the class information and instance variables for each object are written to the archive. The companion class NSKeyedUnarchiver decodes the data in an archive and creates a set of objects equivalent to the original set.

A keyed archive differs from a non-keyed archive in that all the objects and values encoded into the archive are given names, or keys. When decoding a non-keyed archive, values have to be decoded in the same order in which they were encoded. When decoding a keyed archive, because values are requested by name, values can be decoded out of sequence or not at all. Keyed archives, therefore, provide better support for forward and backward compatibility.

The keys given to encoded values must be unique only within the scope of the current object being encoded. A keyed archive is hierarchical, so the keys used by object A to encode its instance variables do not conflict with the keys used by object B, even if A and B are instances of the same class. Within a single object, however, the keys used by a subclass can conflict with keys used in its superclasses.

An NSArchiver object can write the archive data to a file or to a mutable-data object (an instance of NSMutableData) that you provide.

Topics

Initializing an NSKeyedArchiver Object

- initForWritingWithMutableData:

Returns the receiver, initialized for encoding an archive into a given a mutable-data object.

Deprecated

Archiving Data

+ archivedDataWithRootObject:

Returns an NSData object containing the encoded form of the object graph whose root object is given.

Deprecated
+ archiveRootObject:toFile:

Archives an object graph rooted at a given object by encoding it into a data object then atomically writes the resulting data object to a file at a given path, and returns a Boolean value that indicates whether the operation was successful.

Deprecated
- finishEncoding

Instructs the receiver to construct the final data stream.

outputFormat

The format in which the receiver encodes its data.

requiresSecureCoding

Indicates whether the receiver requires all archived classes to conform to NSSecureCoding.

Encoding Data and Objects

- encodeBool:forKey:

Encodes a given Boolean value and associates it with a given key.

- encodeBytes:length:forKey:

Encodes a given number of bytes from a given C array of bytes and associates them with the a given key.

- encodeConditionalObject:forKey:

Encodes a reference to a given object and associates it with a given key only if it has been unconditionally encoded elsewhere in the archive with encodeObject:forKey:.

- encodeDouble:forKey:

Encodes a given double value and associates it with a given key.

- encodeFloat:forKey:

Encodes a given float value and associates it with a given key.

- encodeInt:forKey:

Encodes a given int value and associates it with a given key.

- encodeInt32:forKey:

Encodes a given 32-bit integer value and associates it with a given key.

- encodeInt64:forKey:

Encodes a given 64-bit integer value and associates it with a given key.

- encodeObject:forKey:

Encodes a given object and associates it with a given key.

Managing the Delegate

delegate

The archiver’s delegate.

Managing Classes and Class Names

+ setClassName:forClass:

Adds a class translation mapping to NSKeyedArchiver whereby instances of a given class are encoded with a given class name instead of their real class names.

+ classNameForClass:

Returns the class name with which NSKeyedArchiver encodes instances of a given class.

- setClassName:forClass:

Adds a class translation mapping to the receiver whereby instances of a given class are encoded with a given class name instead of their real class names.

- classNameForClass:

Returns the class name with which the receiver encodes instances of a given class.

Constants

Keyed Archiving Exception Names

Names of exceptions that are raised by NSKeyedArchiver if there is a problem creating an archive.

Keyed Archiver Root Object Key

Keys that NSKeyedArchiver uses in the hierarchy of encoded objects.

Instance Properties

encodedData

Returns the encoded data for the archiver.

Relationships

Inherits From

See Also

Keyed Archivers

NSKeyedArchiverDelegate

The optional methods implemented by the delegate of a keyed archiver.

NSKeyedUnarchiver

A decoder that restores data from an archive referenced by keys.

NSKeyedUnarchiverDelegate

The optional methods implemented by the delegate of a keyed unarchiver.

NSCoder

An abstract class that serves as the basis for objects that enable archiving and distribution of other objects.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software