summaryrefslogtreecommitdiff
path: root/Lisp/class-definition.lisp
diff options
context:
space:
mode:
authorMatthias Benkard <code@mail.matthias.benkard.de>2008-03-05 15:02:34 +0100
committerMatthias Benkard <code@mail.matthias.benkard.de>2008-03-05 15:02:34 +0100
commit33524deab08811cdf99a8a4dd3a1fe547594ad31 (patch)
treea94fa6712489bec3e3f9b3549884889fd15774ae /Lisp/class-definition.lisp
parent58ba11bed59d78aa582ce535fa8769beb35ad106 (diff)
Document COLLECT-CLASSES and COLLECT-METHODS.
darcs-hash:5f9f283cf4206188d49b9a7ac61f247e65ef72c5
Diffstat (limited to 'Lisp/class-definition.lisp')
-rw-r--r--Lisp/class-definition.lisp35
1 files changed, 35 insertions, 0 deletions
diff --git a/Lisp/class-definition.lisp b/Lisp/class-definition.lisp
index d6cc6a9..8c8672d 100644
--- a/Lisp/class-definition.lisp
+++ b/Lisp/class-definition.lisp
@@ -507,4 +507,39 @@ __define-objective-c-method__"
(defun collect-classes ()
+ "Intern all __objective-c-class__es known to the runtime.
+
+## Description:
+
+__collect-classes__ makes all Objective-C classes known to the
+Objective-C runtime available as __class__ metaobjects in the
+_objective-c-classes_ **package** (that is, the _ns_ namespace).
+
+Calling _collect-classes_ is optional. It allows you to use
+__find-class__ instead of __find-objc-class__, but this is purely an
+aesthetic improvement. _collect-classes_ is not necessary to use
+Objective-CL productively.
+
+
+## Note:
+
+_collect-classes_ may take a very long time to complete depending on the
+Lisp implementation. Some implementations are not optimised to create
+such a large number of classes along with their metaclasses on the fly.
+If you care about portability, you may therefore want to do without the
+extra convenience that _collect-classes_ offers.
+
+
+## Note 2:
+
+Even though when subclassing a foreign __class__, it needs to be
+available as a __class__ metaobject in the _objective-c-classes_
+package, you need not call _collect-classes_ before subclassing a
+foreign __class__, because __define-objective-c-class__ takes care to
+intern any missing superclass objects.
+
+
+## See also:
+
+ __collect-methods__"
(%objcl-for-each-class-do (callback collect-class)))