Scripts/dictionary

Using Cocoa collection classes

Cocoa contains a number of collection classes, including dictionaries and arrays (like python lists) in mutable and immutable variations. We’ll demonstrate their usage using the NSMutableDictonary class.

We’ll start by importing everything we need:

>>> from Foundation import NSMutableDictionary

Then create an empty dictionary:

>>> d = NSMutableDictionary.dictionary()
>>> d
{
}
>>> isinstance(d, dict)
False
>>> isinstance(d, NSMutableDictionary)
True

You can add a new value using the Objective-C API:

>>> d.setObject_forKey_(42, 'key2')
>>> d
{
    key2 = 42;
}

But can also use the familiar python interface:

>>> d['key1'] = 'hello'
>>> d
{
    key1 = hello;
    key2 = 42;
}

The same is true for fetching elements:

>>> d['key2']
42
>>> d.objectForKey_('key1')
'hello'

Sources

#!/usr/bin/env python
# This is a doctest
"""
==============================
Using Cocoa collection classes
==============================

Cocoa contains a number of collection classes, including dictionaries and
arrays (like python lists) in mutable and immutable variations. We'll
demonstrate their usage using the ``NSMutableDictonary`` class.

We'll start by importing everything we need::

    >>> from Foundation import NSMutableDictionary

Then create an empty dictionary::

    >>> d = NSMutableDictionary.dictionary()
    >>> d
    {
    }
    >>> isinstance(d, dict)
    False
    >>> isinstance(d, NSMutableDictionary)
    True

You can add a new value using the Objective-C API::

    >>> d.setObject_forKey_(42, 'key2')
    >>> d
    {
        key2 = 42;
    }

But can also use the familiar python interface:

    >>> d['key1'] = 'hello'
    >>> d
    {
        key1 = hello;
        key2 = 42;
    }

The same is true for fetching elements::

    >>> d['key2']
    42
    >>> d.objectForKey_('key1')
    'hello'
"""
import doctest

import __main__

doctest.testmod(__main__, verbose=1)