我有一些像这样的代码:
int numClasses = objc_getClassList(NULL, 0);
...
Class * classes = malloc(sizeof(Class) * numClasses);
numClasses = objc_getClassList(classes, numClasses);
有时它会起作用,有时却不起作用。当它失败时,我看到第二次调用返回的numClasses
的值与第一次调用的值不同。例如,在项目中,第一个调用返回1534.有时第二个调用返回1534,一切正常。但有时它返回1536并且程序因EXC_BAD_ACCESS而崩溃,因为它没有分配足够的内存。
我的问题是为什么objc_getClassList
会返回两个不同的数字(有时候!)????