Function 関数

objc_getClassList(_:_:)

Obtains the list of registered class definitions.

Declaration 宣言

func objc_getClassList(_ buffer: AutoreleasingUnsafeMutablePointer<AnyClass>?, 
                     _ bufferCount: Int32) -> Int32

Parameters パラメータ

buffer

An array of Class values. On output, each Class value points to one class definition, up to either bufferCount or the total number of registered classes, whichever is less. You can pass NULL to obtain the total number of registered class definitions without actually retrieving any class definitions.

bufferCount

An integer value. ある整数値。 Pass the number of pointers for which you have allocated space in buffer. On return, this function fills in only this number of elements. If this number is less than the number of registered classes, this function returns an arbitrary subset of the registered classes.

Return Value 戻り値

An integer value indicating the total number of registered classes.

Discussion 解説

The Objective-C runtime library automatically registers all the classes defined in your source code. You can create class definitions at runtime and register them with the objc_addClass function.

Listing 1 demonstrates how to use this function to retrieve all the class definitions that have been registered with the Objective-C runtime in the current process.

Listing 1 Using objc_getClassList

int numClasses;
Class * classes = NULL;
 
classes = NULL;
numClasses = objc_getClassList(NULL, 0);
 
if (numClasses > 0 )
{
    classes = malloc(sizeof(Class) * numClasses);
    numClasses = objc_getClassList(classes, numClasses);
    free(classes);
}

Special Considerations 特別な注意事項

You can’t assume that class objects you get from this function are classes that inherit from NSObject, so you can’t safely call any methods on such classes without detecting that the method is implemented first.

See Also 参照

Obtaining Class Definitions