2

我以前在命令行中使用过 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 构建中获得。

4

3 回答 3

1

对于可能遇到此线程的任何人(如果问题仍然存在,对于 OP):

我在为模拟器构建时遇到了这个问题。但是,切换到设备构建使分析器运行。

这个网站可能会更清楚地说明这个问题:http ://useyourloaf.com/blog/2010/10/5/xcode-build-and-analyze-broken-for-simulator.html

于 2010-12-05T11:01:18.147 回答
1

我正在使用 Cocos2d 和 Box2d,我从 Build and Analyze 收到大量警告。检查以确保您的项目的编译器在构建设置中的“编译器版本”下设置为 GCC 4.2。

于 2010-04-30T00:20:13.217 回答
0

我的 Cocos2d 游戏也收到很多分析警告。我清理了大部分,但是 cocos2d 0.99.1 内置了 3 个!(这应该很容易修复。)

我注意到有时分析器找不到东西,除非我在运行它时打开了那个特定的文件……去看看。

于 2010-04-30T17:37:27.590 回答