在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语句的目的是什么?看起来这段时间内的块只会被执行一次,但我可能完全错过了一些东西。有没有人对此有任何见解?
谢谢!