0

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

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 语句的目的是什么?似乎一段时间内的块无论如何都会被执行一次,但我可能在这里完全遗漏了一些东西。有人对此有任何见解吗?

谢谢!

4

0 回答 0