Platforms to show: All Mac Windows Linux Cross-Platform

NSKeyedUnarchiverMBS class

Super class: NSCoderMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
class Cocoa MBS MacBase Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
The plugin class for unarchiving objects.
Example
// make archiver
dim a as new NSKeyedArchiverMBS

// add a string
a.encodeString "Hello World", "Greeting"

// finish
a.finishEncoding

// query data
dim m as MemoryBlock = a.archiverData

// start unarchiver
dim u as new NSKeyedUnarchiverMBS(m)

// query and display a value
dim s as string = u.decodeString("Greeting")
MsgBox s

NSKeyedUnarchiver, a concrete subclass of NSCoder, defines methods for decoding a set of named objects (and scalar values) from a keyed archive. Such archives are produced by instances of the NSKeyedArchiver class.

A keyed archive is encoded as a hierarchy of objects. Each object in the hierarchy serves as a namespace into which other objects are encoded. The objects available for decoding are restricted to those that were encoded within the immediate scope of a particular object. Objects encoded elsewhere in the hierarchy, whether higher than, lower than, or parallel to this particular object, are not accessible. In this way, the keys used by a particular object to encode its instance variables need to be unique only within the scope of that object.

If you invoke one of the decode... methods of this class using a key that does not exist in the archive, a non-positive value is returned. This value varies by decoded type. For example, if a key does not exist in an archive, decodeBoolForKey returns false, decodeIntForKey returns 0, and decodeObjectForKey returns nil.

NSKeyedUnarchiver supports limited type coercion. A value encoded as any type of integer, whether a standard int or an explicit 32-bit or 64-bit integer, can be decoded using any of the integer decode methods. Likewise, a value encoded as a float or double can be decoded as either a float or a double value. If an encoded value is too large to fit within the coerced type, the decoding method raises an NSRangeException. Further, when trying to coerce a value to an incompatible type, for example decoding an int as a float, the decoding method raises an NSInvalidUnarchiveOperationException.
Subclass of the NSCoderMBS class.

Super class NSCoderMBS

This class has no sub classes.

Blog Entries


The items on this page are in the following plugins: MBS MacBase Plugin.


NSKeyedArchiverMBS   -   NSKeyValueObserverMBS


The biggest plugin in space...