Property Lists

From GNUstepWiki

(Difference between revisions)
Revision as of 09:57, 6 July 2005
Comrade (Talk | contribs)
Added to category Development
← Previous diff
Revision as of 05:16, 7 July 2005
Quineska (Talk | contribs)
Added better Array example.
Next diff →
Line 26: Line 26:
An array is a list of values, each of the same type (often arrays or dictionaries). Programmatically, it uses NSArray/NSMutableArray. It takes a syntax similar to the following: An array is a list of values, each of the same type (often arrays or dictionaries). Programmatically, it uses NSArray/NSMutableArray. It takes a syntax similar to the following:
-( Value1, Value2, Value3, Value4 )+ ( Value1, Value2, Value3, Value4 )<br>
 + or<br>
 + (
 + Value1,
 + Value2,
 + Value3,
 + Value4
 + )
-Each value is seperated by commas. By the technical definition of an array, each value is of the same type (but I believe GNUstep permits different types).+Each value is seperated by commas. By the technical definition of an array, each value is of the same type (but I believe GNUstep permits different types TODO: check this).
== Programming == == Programming ==

Revision as of 05:16, 7 July 2005

NOTE: If anything below is dead wrong, please fix immediately. It is a work in progress. I am constructing this based on my experience with GNUstep, NOT any reference documentation that may exist. I don't warrant it fit for any purpose whatsoever, nor shall I take any responsibility for any issues or losses or problems etc that may arise from its use. (Christopher Armstrong, --ChrisArmstrong 08:38, 6 Jul 2005 (CEST))


Contents

Introduction

Property lists are used throughout GNUstep to store defaults, program settings, application meta information, etc. MacOS X uses XML based property lists, but GNUstep uses another property list implementation also (TODO: history of this style of property list).

They are composed of a "tree of arrays and dictionary's, which may be embedded inside each other for several layers. TODO: limits of embedding array/dictionaries inside each other.

Dictionary

A dictionary is a list of key-value pairs, where each item in the list has a name associated with it (key) and another type (value), which could be another dictionary, an array or often a string. It programmatically corresponds to NSDictionary/NSMutableDictionary. They take the following syntax:

{
   KeyName1 = Value1;
   AnotherKeyName = "Value2";
   Something = ( "ArrayItem1", "ArrayItem2", "ArrayItem3" );
   Key4 = 0.10;
   KeyFive = { Dictionary2Key1 = "Something"; AnotherKey = "Somethingelse"; };
}

As can be seen, each key-value pair is seperated by a semi-colon. Within the pair, the key is seperated from the value with an "equals" (=) sign. The key name is arbitrary, and not put in inverted commas (""). Shown above are a (unknown type, could be some sort of string - TODO), a string, an array, a number and another dictionary (respectively).

Array

An array is a list of values, each of the same type (often arrays or dictionaries). Programmatically, it uses NSArray/NSMutableArray. It takes a syntax similar to the following:

( Value1, Value2, Value3, Value4 )
or
( Value1, Value2, Value3, Value4 )

Each value is seperated by commas. By the technical definition of an array, each value is of the same type (but I believe GNUstep permits different types TODO: check this).

Programming

GNUstep permits such property list files (denoted with a .plist extenstion) to be loaded and subsequently used in your applications or tools. NSDictionary and NSArray are used as representations of the above in the Foundation library (gnustep-base).