7

質問が言うように、リソースディレクトリの下に指定された名前のファイルが複数ある場合、imageNamed はどのように機能しますか?

同じ名前 (ただしパスは異なる) の 2 つの異なるファイルを区別する方法はありますか?

ありがとうございました

4

1 に答える 1

8

Xcodeバンドルのフォルダは「グループ」です。つまり、実際のディレクトリではありません。これらのグループのファイルは、引き続きバンドルのルートにあります。

そのため、アプリバンドルに同じ名前のファイルを2つ(またはそれ以上)含めることはできません。

参照: http: //majicjungle.com/blog/?p = 123

グループの問題:

ディレクトリ構造はiphoneアプリにコピーされると失われるため、アプリバンドル内には、ベースディレクトリ内のすべてのリソースの大きなリストが含まれています。この結果、ファイル名の重複が問題になります。ディスク上のディレクトリ構造内のファイルに同じファイル名が含まれている場合、ビルドプロセスはすべてを黙って台無しにします。これは「最初の勝利」のようであり、リソースの1つだけがアプリバンドルに組み込まれています。したがって、それぞれが異なる「Terrain.png」ファイルを含む異なるレベルのパッケージがたくさんある場合は、良くありません。

フォルダ参照を作成してディレクトリ構造を維持すると、ファイル名が重複する問題がなくなります。ただし、ファイルの取得が問題です。

できることは、NSBundleクラスを使用することです。

[[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:@"path/to/file.jpg"]
于 2011-01-03T02:23:16.540 に答える