0

Xcodeを介してiPhoneシミュレーターで正常に実行されているアプリがあります。iPod touchでアプリを実行しようとすると、次のエラーが発生します。

2012-05-25 19:40:33.014 PracticeOne [602:707] cocos2d:CCTexture2D。テクスチャを作成できません。UIImageはnilです2012-05-2519:40:33.016 PracticeOne [602:707] cocos2d:CCTextureCacheにimage:Success1.pngを追加できませんでした2012-05-25 19:40:33.025 PracticeOne [602:707] *アサーション-[Game addChild:z:]、/ IOSDevelopment / PracticeOne / PracticeOne / libs / cocos2d / CCNode.m:407での失敗

Resourcesフォルダーに保存されているSuccess1.png画像があります。

ユーザーが送信ボタンをタップすると、次のロジックが実行されます。

//成功のグラフィックを画面に表示

    CCSprite *goodWord = [CCSprite spriteWithFile:@"Success1.png"];
    [goodWord setPosition:ccp(s.width / 2, s.height / 2) ];
    [self addChild:goodWord z:200];
    id action1 = [CCFadeIn actionWithDuration:1.5];
    id action2 = [CCFadeOut actionWithDuration:1.5];
    [goodWord runAction:action1];
    [goodWord runAction:action2];

そこで、pngファイルを取得して配置し、シーンに追加します。画像をフェードインおよびフェードアウトするアクションを実行します。一時的に表示されて消え、ユーザーに成功したことを示します。

デバイスで実行されているコードをデバッグすると、Success1.pngを取得しようとした後、goodWordにアドレスが含まれていません。

なぜそれがシミュレーターで成功し、このエラーを1つのデバイスでスローするのか誰かが知っていますか?リソースフォルダの他の画像がデバイス上で正常に表示されています。

ヒントや提案をいただければ幸いです。私は解決策を探し続け、成功した場合は更新します。

前もって感謝します。

4

2 に答える 2

0

これがバグなのか、OS X と iOS の間の動作の癖なのかはわかりませんが、別のデバイスの別のプロジェクトの画像をiOS プロジェクトのアセットベース。

私の特定のケースでは、元の画像は gif ファイルで、それらを png に変換しました。すべてのファイルを Photoshop で開き、それぞれを新しい png として保存しました。時々、ファイル形式を変更するのを忘れて、.gif 拡張子を .png に置き換えただけでした。Photoshop が警告したとは思えないので、png 拡張子を付けて gif を効果的に保存していました。

奇妙なことは、これらの種類の gif を png 拡張子で X コードにロードして実行すると、シミュレーターのアプリ内で動作することです! ただし、アプリケーションをロードしてそこからテストすると、iOS デバイスでは機能しません。

それを修正することは、正しい形式を選択していることを確認して、画像を正しく再保存するのと同じくらい簡単です.

あなたの画像がどこから来たのか、どのような種類のエディタを使用したのかはわかりませんが、OS X は、拡張子に関係なく、画像が保存されているファイルの種類を判断できるほど賢いのでしょうか。しかし、iOS にはこのようなインテリジェンスが組み込まれていないようです。

于 2012-05-26T01:14:41.273 に答える
0

デバイスは、細かい名前の大文字と小文字を区別します。Xcode ナビゲーターのファイル名が、リソース フォルダー内の細かい名前と大文字と小文字が同じであることを確認してください。また、他の不一致を明らかにするために、プロジェクトを「ディープ クリーン」にすることをお勧めします。

于 2012-05-26T13:01:56.153 に答える