我以前在命令行中使用过 Clang 静态分析器。我想通过 Build & Analyze 尝试 Xcode 的内置版本。即使我专门为我的代码准备了 Clang 总是能够指出的非常明显的问题,我也从未得到任何负面结果:
// over-releasing an object:
[label release];
[label release];
// uninitialized vars, allocating but not freeing an object
NSString* str;
int number;
CCLabel* newLabel = [[CCLabel alloc] initWithString:str fontName:str fontSize:number];
[newLabel setPosition:CGPointZero];
结果总是一样的:一个绿色的复选框,没有问题。我读到 C++ 代码可能会导致问题。我正在使用包含 box2d 的 cocos2d 运行它。这可能是一个原因吗?有人用 cocos2d 引擎从 Build & Analyze 得到结果吗?还能是什么?
我也尝试启用静态分析器构建设置,然后构建,但结果是一样的。我重新启动了 Xcode,清理了所有目标并清空了 Xcode 缓存,但无济于事。
更新:我的问题可能是由于将 cocos2d 添加为对我的项目的跨项目引用引起的。单独分析 cocos2d 项目本身会显示一些分析器结果。
此外,我发现我从我的 RELEASE 构建配置中获得了分析器结果,而不是从 DEBUG 构建中获得。