2012-07-16 6 views
13

私のXcodeプロジェクトでは、画像があるフォルダを指す青い参照フォルダがあります。UIImage imageNamed:青で参照されているXcodeフォルダ内に画像がありません

青いフォルダの利点は、ファイルをXcodeに手動で追加する必要がないことです。 私はそれが自動的にXcodeで現れたフォルダに新しいイメージを追加するとき、私は

[UIImage imageNamed:@"myFileFromTheBlueFolder"]; 

を使用してコードからファイルを参照しようとすると、最上位のフォルダがあるもののので、しかし、それが画像を見つけることができませんターゲットに追加されます。 :-(

私は私見ではそのようなすべてのフォルダを持つの目的を台無しにしてしまう青フォルダ、から来ているとき、異なる画像を参照する必要があります。

+0

像を示すあなたのXcodeのファイル構造のスクリーンショットを追加 – nduplessis

+1

あなたは試してみましたきれい?常にブルーのフォルダでたくさんの掃除が必要なようです。 – Martin

+0

"blue"フォルダはディレクトリです。 'imageNamed'パラメータにそのパスを含めることができます。それ以外の場合は、Kevin Ballardの提案に従わなければなりません。また、ファイルの拡張子が必要です。 – Rob

答えて

9

私はこの問題は、「青想像(例えば、グループではなくフォルダ参照)があなたのAppリソースにそのままコピーされているということです。つまり、通常はリソースのように平坦化されていません。

このように、+[UIImage imageNamed:]はサブディレクトリに再帰しないためイメージが見つかりません0を使用することができますを使用してリソースへのパスを取得し、それを+[UIImage imageWithContentsOfFile:]に渡しますが、これは+imageNamed:が持つメモリ最適化を破棄します(例:使用されたイメージをキャッシュし、未使用のイメージをドロップする)。

また、フォルダ参照の使用を中止することもできます。または、リソースのビルド・フェーズからフォルダ参照を削除し、その内容をビルドされた製品にコピーするシェル・スクリプトのビルド・フェーズを追加することもできます。

+0

ありがとうございました。それから私はグループに固執すると思います。 AppleScriptなどを使用してファイルをグループに自動的に追加することができました。私は青いフォルダから利益を得ることができるように。 – Besi

+0

@Besi:Xcode以外のプロジェクトにファイルを追加するのはなぜですか? Xcodeを直接使用してファイルを追加する人に教えるだけで簡単になるかもしれません。 –

+0

私のイメージリソースのいくつかが同じ名前を持っているので、私はフォルダ参照を使用する必要があります。だから、私の場合、どのように達成/維持**メモリ最適化**できますか? – Vasu

-9

イメージの完全な名前を書きます。

[UIImage imageNamed:@"myFileFromTheBlueFolder.png"]; 

大文字と小文字を区別しない名前の場合は、覚えておいてください。

23

Kevinは+[UIImage imageNamed:]が提供するメモリ最適化については正しいですが、青いフォルダ(フォルダ参照)の画像には絶対にアクセスできます。あなたがする必要があるのは、イメージ名にフォルダ名を追加することだけです。たとえば:

あなたのリソースは、次のように編成されています。

Icons (blue folder/folder reference) 
    |__camera.png 
    |__checkmark.png 
Shared (yellow folder/xcode group) 
    |__back.png 
    |__logo.png 

あなたはこのように画像にアクセスすることができます

[UIImage imageNamed:@"Icons/camera"]; 
[UIImage imageNamed:@"Icons/checkmark"]; 

[UIImage imageNamed:@"back"]; 
[UIImage imageNamed:@"logo"]; 
+0

UIImage(名前: "Cats/\(imageName).png ") –

関連する問題