0

グラフィックデザイナーから、「hide_00〜iphone.png」、「hide_00 @ 2X〜iphone.png」などの名前の.PNGが送られてきます。

彼はAfterEffectsから画像をエクスポートしています。それらをプロジェクトに追加し、initの配列にロードしようとします。彼のすべてのファイルに対して毎回例外がスローされます。ここで、ファインダー内のファイルの名前をまったく同じ名前に変更すると、すべてが正常にコンパイルされます。ここで何が起こっているのかわかりません。名前を変更するまで、Xcodeはファイルシステムでそれらを見つけることができません。しかし、その名前は彼が私に送ったものとまったく同じです。彼のファイル名の周りに空白をチェックしましたが、すべて問題ないようです。

After Effectsが画像に奇妙なヘッダー情報を入れているかどうか誰かが知っていますか?または、これは誰にでもなじみのある音ですか。私たちが扱っている画像はたくさんあり、手作業で名前を変更する必要はありません。

4

1 に答える 1

2

だから私はimageNamedを使用し、画像はうまくロードされました。したがって、パス/名前で画像をロードするルーチンには明らかに欠陥があります。あなたはそれを投稿することができ、それを評価することができます-しかしこれは「AfterEffects」とは何の関係もありません。

編集:記録のために、私のシステムはLion Xcode 4.4.1であり、私のプロジェクトはiOS5.1用に設定されています。ドロップボックスからファイルを取得し、プロジェクトで、実行しようとしているときにイメージをロードできることを確認しました。

for (int i = 6; i < 7; i++) {
    NSString *path = [NSString stringWithFormat:@"hide_step_seq_%02d", i];
    UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:path  ofType:@"png"]];
    NSLog(@"PATH %@ image=%@", path, image);
}
2012-09-13 07:15:23.241 Searcher[58114:f803] PATH hide_step_seq_06 image=<UIImage: 0x6a4cb30>

それで、ここからどこへ行くのですか?@ 2xまたは〜iphoneのサフィックスでやけどを負った数人の人々を助けようとしました。何らかの理由で、これを機能させることができない人もいます。私が考えることができるのは、システムの奥深くに切り替えられるフラグがあり、それを解除する方法がないことだけです。

私の提案は、実際の完全なファイル名を使用してみることです。〜iphoneを追加して、それが機能するかどうかを確認してください。

ターミナルで'ls*.png|を実行することもできます。名前を変更する前と後で、文字が完全に同じであることを確認するためのod-c'。

私がこれについて最後に考えたのは、ファイルには多くの属性があるということです。作成時間、最終アクセス、最終変更、拡張属性、アクセス許可などです。何らかの理由で、これらの値の1つがシステムの試行をブロックする可能性があります。 〜iphoneサフィックスを使用します。

私は本当にあなたをさらに助けることができればいいのにと思います。いくつかの画像を開こうとするだけで失敗する単純な小さなプロジェクトをまとめたい場合は、プロジェクト全体を圧縮してドロップボックスに配置します。システムで実行して試してみてください。問題を複製します。上記のコードで行ったように、パスが適切に表示され、画像がnilであることを確認することもできます。

于 2012-09-13T01:21:31.370 に答える