API Notes: Foundation framework
===============================
API Notes
---------
``NSFastEnumeration``
.....................
* PyObjC doesn't use or implement this protocol yet.
``NSAppleEventDescriptor``
..........................
* ``-initWithAEDescNoCopy:``, ``-aeDesc``
These methods are not supported.
``NSArray``
...........
* ``-getObjects:``
This method is not supported. Either use
the ``NSArray`` like a normal python sequence
or use ``-getObjects:inRange:``.
``NSException``
...............
* ``raise:format:arguments:``
This method is not supported.
* ``NSGetUncaughtExceptionHandler``, ``NSSetUncaughtExceptionHandler``
These functions are not yet supported.
``NSExpression``
................
* ``expressionWithFormat:``
This method is currently not supported because there is no API documentation,
which makes it impossible to wrap this method with a vararg signature.
``NSGarbageCollector``
......................
PyObjC doesn't really support the GC yet. I've tried to code
defensively, but have never tested a GC-enabled Python build
and PyObjC relies on the usage of ``-dealloc`` in a number of
cases.
* ``-disableCollectorForPointer:``, ``-enableCollectorForPointer:``
These methods are not yet supported.
``NSHashTable``
...............
PyObjC only supports ``NSHashTable`` instances that have been
configured to store objects (as opposed to arbitrary pointers).
``NSIndexPath``
...............
* ``-getIndexes:``
Use the indexPath as a python sequence instead.
* ``NSIndexPath`` supports a number of convenience methods::
path[idx] <==> path.indexAtPosition_(idx)
len(path) <==> path.length()
path + 4 <==> path.indexPathByAddingIndex_(4)
``NSMapTable``
..............
PyObjC only supports ``NSMapTable`` instances that have been
configured to store objects (as opposed to arbitrary pointers).
``NSPointerArray``
..................
PyObjC only supports ``NSPointerArray`` instances that have been
configured to store objects (as opposed to arbitrary pointers).
``NSPointerFunctions``
......................
Accessing properties of this class is not supported.
``NSMachPort``
..............
The delegate protocol of ``NSMachPort`` is not supported at
the moment.
``NSPredicate``
...............
* ``-predicateWithFormat:arguments:``
This method is not supported.
``NSProcessInfo``
.................
PyObjC defines a context named ``NSDisabledSuddenTermination``. This can be used to
disable sudden termination for a block of code. The context works on all versions of
OSX, but only has a real side effect on OSX 10.6 or later.
Usage::
with NSDisabledSuddenTermination:
# sudden termination is disabled here
pass
PyObjC defines a context named ``NSDisabledAutomaticTermination``. This can be used to
disable automatic termination for a block of code. The context works on all versions of
OSX, but only has a real side effect on OSX 10.6 or later.
Usage::
with NSDisabledAutomaticTermination("Updating status"):
# sudden termination is disabled here
pass
``NSSet``
.........
* ``+setWithObects:``, ``-initWithObject:``
These methods are not supported, use other constructors instead.
``NSOutputStream``
..................
* ``-initToBuffer:capacity:``, ``outputStreamToBuffer:capacity:``
This method is barely supported. The method only works when you pass
a writable buffer argument as the buffer, and manually ensure that the
buffer stays alive.
``NSString``
............
* ``-getCharacters:``
This method is not supported.
``NSValue``
...........
* ``-getValue:``
This method is not supported
``NSGetUncaughtExceptionHandler``
.................................
This function is yet supported.