2

何をしたのかわかりません - 私は楽しそうにコーディングしていました.. Xcode を 4.1.1 にアップデートしたことと関係があるのではないかと思いますが、突然、プロジェクトをビルドして実行すると、次のコンパイラ警告が表示されます。約 20 の異なる cocos2d モジュールに表示されます。

'format は unsigned int を指定していますが、引数には ['CCTimer'] (またはそれが入っているモジュール) があります

cocos2d モジュールの問題の行は次のとおりです。

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

そして、問題を引き起こしているのは「%08X」です..

そして、このエラー以来、シミュレーターでは正常に動作しますが、iPhone でコンパイルできません。スマホのOSを最新にアップデートしましたがダメでした..

他の誰かがこれを持っていますか?

4

1 に答える 1

1

これは、ポインター値を出力しようとする cocos2d の多くのフォーマット文字列の 1 つです。%08X は機能しますが、これを行う正しい方法は %p を使用することです。したがって、この行を次のように変更できます。

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

これらすべての行を変更する必要があります。約 10 行ほどあります。

違いがどのように見えるか知りたい人のための出力例:

%08X: 0976DC80
%p:   0x976dc80

PS: 最近、Kobold2Dのこれらの不正な cocos2d ログをすべて修正しました。

于 2012-08-26T21:19:38.130 に答える