[swift-evolution] [Proposal] Foundation Swift Archival & Serialization

Tony Parker anthony.parker at apple.com
Mon Mar 20 12:17:16 CDT 2017


Hi Kenny,

> On Mar 19, 2017, at 9:53 PM, Kenny Leung via swift-evolution <swift-evolution at swift.org> wrote:
> 
> Hi All.
> 
> Forgive me if I missed it - I haven’t read the proposal in full detail - but it seems to make no mention of archiving graphs with circular references. Is this implicitly supported, or explicitly unsupported?
> 

We expect this to be left up to the encoders and decoders. In Foundation itself, we actually have subclasses of NSCoder that support this and subclasses that do not.

> While we’re at it, my only real exposure to archiving is through Foundation, so I’d like to know how everybody else understands these terms:
> 
> serialization - the process of “flattening” out an object graph into a serial stream of objects
> 
> encoding - the process of converting internal object data into an external format
> 
> archiving - the whole enchilada of serialization + encoding
> 
> Thanks!
> 
> -Kenny

Good question about terminology. Here is how we’ve tried to define these:

Serialization: conversion of a small fixed set of types to a data format and back
	ex. NSJSONSerialization, NSPropertyListSerialization

Encoding: conversion of an arbitrary type to a smaller set of serialized types and back
	ex: Encoder, Decoder, JSONEncoder, PropertyListEncoder

Archiver: In the ObjC Foundation, the objects which do the encoding. In this proposal we have chosen not to re-use this term to avoid confusion. Instead we tried to simplify the terminology by calling the top level concrete object an encoder.

- Tony



More information about the swift-evolution mailing list