rsc3/doc-schelp/HelpSource/Reference/initClass.schelp

50 lines
1 KiB
Text
Raw Permalink Normal View History

2022-08-24 13:53:18 +00:00
title::initClass
categories::Core>Kernel, Language>OOP
summary:: Class initialization
related:: Classes/Class
method:: initClass
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.
In this method, any class that requires it may initialize classvars or other resources.
method:: initClassTree
In some cases you will require another class to be initialized before you can initialize your own. You may depend on its resources (a classvar). This can be accomplished by:
code::
YourClass {
*initClass {
Class.initClassTree(OtherClass);
..
//
..
}
..
}
::
Each class will be initialized once, and the OtherClass will have all of its subclasses initialized before the method returns.
For those methods that need pre-initialized data (such as path names) should defer this function by using StartUp:
code::
YourClass {
*initClass {
StartUp.add {
..
}
}
..
}
::