writeAsPlist


Object method


object.writeAsPlist(path);


Write the object to disk as a PropertyList.  It is used commonly in OS X to store data.  


This is an XML format that may be read from easily from Objective-C, Java or any language that uses the CoreFoundation(Cocoa) framework.  


Objective-C:


id rootObject = [NSKeyedUnarchiver  unarchiveObjectWithFile: path ];


The file may be double-clicked to open it in Property List Editor.


 

When opening the PropertyList:


your SC objects are converted to Foundation objects in this fashion:


SimpleNumber -> NSNumber.

SequenceableCollections -> NSArray with each item converted

Strings -> NSString

Symbols -> NSString

Char -> NSString

Nil -> NSNull

Boolean ->NSNumber (numberWithBool:) equivalent to a CFBoolean

Dictionary ->NSDictionary (each item converted)

Other objects  -> NSNull


Most commonly the root object is an NSDictionary or NSArray.



4.0.writeAsPlist("testWritePlist.plist");


4.writeAsPlist("testWritePlist.plist");


"string".writeAsPlist("testWritePlist.plist");


'symbol'.writeAsPlist("testWritePlist.plist");


$c.writeAsPlist("testWritePlist.plist");


nil.writeAsPlist("testWritePlist.plist");


true.writeAsPlist("testWritePlist.plist");


false.writeAsPlist("testWritePlist.plist");


[1,false,'symbol'].writeAsPlist("testWritePlist.plist");


List[1,false,\symbol].writeAsPlist("testWritePlist.plist");


// cannot convert these objects

[Ref(pi),Pbind.new].writeAsPlist("testWritePlist.plist");


Dictionary[

\a -> "a",

"b" -> \b,

3 -> 3.0

].writeAsPlist("testWritePlist.plist");



IdentityDictionary[

\a -> "a",

"b" -> \b,

3 -> 3.0

].writeAsPlist("testWritePlist.plist");