Property lists are used extensively in macOS and iOS. They can be used to store user preferences, configuration information for your system, and information in your installed applications. A property list is a hierarchical data structure made up of seven different types of data:
- Dictionary: a dictionary contains key/value pairs, with one data value associated with each key in the dictionary. Dictionaries are unordered, but can only have one instance of any given key.
- Array: an array contains any number of data values in a particular order. The values in an array are distinguished solely by their index within the array.
- String: a series of characters of any length.
- Number: a number, either integer or floating point.
- Boolean: a simple truth value, either YES or NO
- Date: a point in time which can be measured down to the second. Dates in property lists are not associated with any particular time zone.
- Data: a raw series of bytes, displayed in hexadecimal.
Property lists can be stored in files in several different formats: XML, ASCII, or binary. The most common form is XML, which is both human readable and flexible enough to represent all seven types of data that occur in property lists. The ASCII format for property lists is a little easier to read and edit, but some of the data types (boolean, date, and number) cannot be stored in this format (the ASCII format is also deprecated in macOS 10.6 and later). The binary format takes up the least space on disk and can represent all data types, but is not easily readable or editable.
More details on the use of property lists in macOS and iOS can be found on Apple’s site: Property List Programming Guide