Merge pull request #506 from andrewcsmith/patch-2
[supercollider.git] / HelpSource / Reference / initClass.schelp
blobc8073c1f6e959cd68b32135e51399f64e39554d5
1 title::initClass
2 categories::Core>Kernel, Language>OOP
3 summary:: Class initialization
4 related:: Classes/Class
6 method:: initClass
8 When SuperCollider starts up, just after it has compiled the library, it initializes all the classes from Object down, a depth first traversal of subclasses.
10 In this method, any class that requires it may initalize classvars or other resources.
12 method:: initClassTree
14 In some cases you will require another class to be initalized before you can initalize your own.  You may depend on its resources (a classvar).  This can be accomplished by:
16 code::
17 YourClass {
18     *initClass {
19         Class.initClassTree(OtherClass);
21         ..
23         //
25         ..
26     }
28     ..
33 Each class will be inited once, and the OtherClass will have all of its subclasses inited before the method returns.
35 For those methods that need pre-initialized data (such as path names) should defer this function by using StartUp:
37 code::
38 YourClass {
39     *initClass {
40         StartUp.add {
41             ..
42         }
43     }
45     ..