在目标c运行时使用objc_getClassList

时间:2012-11-08 17:44:44

标签: objective-c ios xcode runtime

在apple的开源运行时文档中(可在此处获得:http://opensource.apple.com/source/objc4/objc4-208/runtime/objc-runtime.h),apple提供了获取所有类的示例方法一个应用程序。它看起来像这样:

int numClasses = 0, newNumClasses = objc_getClassList(NULL, 0);
Class *classes = NULL;
while (numClasses < newNumClasses) {
    numClasses = newNumClasses;
    classes = realloc(classes, sizeof(Class) * numClasses);
    newNumClasses = objc_getClassList(classes, numClasses);
}
// now, can use the classes list; if NULL, there are no classes
free(classes);

很抱歉,如果这是一个蹩脚的问题,但是如果我们在下一行中将numClasses设置为newNumClasses,那么在那里使用while语句的目的是什么?看起来这段时间内的块只会被执行一次,但我可能完全错过了一些东西。有没有人对此有任何见解?

谢谢!

0 个答案:

没有答案