2

我不确定我做了什么 - 我正在愉快地编码。我认为这可能与将 Xcode 更新到 4.1.1 有关,但是突然之间,当我构建和运行我的项目时,以下编译器警告出现在大约 20 个不同的 cocos2d 模块中。

'格式指定无符号整数,但参数有['CCTimer'](或它所在的任何模块)

cocos2d 模块中有问题的行是:

return [NSString stringWithFormat:@"<%@ = %08X | target:%@ selector:(%@)>", [self class], self, [target class], NSStringFromSelector(selector)];

是导致问题的'%08X'..

由于这个错误,我无法在我的 iphone 上编译,尽管它在模拟器中运行良好。我将我的手机操作系统更新到最新版本,但它没有帮助..

其他人有这个吗?

4

1 回答 1

1

这是 cocos2d 中试图打印出指针值的众多格式字符串之一。虽然 %08X 工作的正确方法是使用 %p。因此,您可以将行更改为:

[NSString stringWithFormat:@"<%@ = %p | target:%@ selector:(%@)>", [self class], self, [target class], NSStringFromSelector(selector)];

您将不得不更改所有这些行,大约有十几个。

任何好奇差异的人的示例输出:

%08X: 0976DC80
%p:   0x976dc80

PS:我最近在Kobold2D中修复了所有这些不正确的 cocos2d 日志。

于 2012-08-26T21:19:38.130 回答