0

メイン バンドルからローカル xml ファイルを読み込めるのに、画像を読み込めないのはなぜですか?

NSString *path = [[NSBundle mainBundle] resourcePath];

これが読み込まれます (トレースできるのでわかります) /Users/me/Library/Application Support/iPhone Simulator/User/Applications/5B888456-40FF-4C72-A2ED-5D5CFA287777/MyApp.app/test.xml

この画像は読み込まれません (どの画像も読み込まれません): /Users/me/Library/Application Support/iPhone Simulator/User/Applications/5B888456-40FF-4C72-A2ED-5D5CFA287777/MyApp.app/background.png

4

6 に答える 6

3

コメントで、パスのNSURLを作成していると言います。バンドル内のファイルなどのローカルファイルシステムパスに対してこれを行うには、を使用する必要がありますNSURL fileURLWithPath:

于 2010-11-20T04:11:49.283 に答える
3

使用できます[UIImage imageNamed:@"background.png"]

これにより、background.png が読み込まれます (Xcode の Resources フォルダーにある必要があります)。

于 2009-05-18T23:34:08.287 に答える
1

何かのようなもの

UIImage *testimg = [UIImage imageNamed:myfilename];

if (nil==testimg) [testimg initWithContentsOfURL:myurl];

私は現在コンパイラから離れているので、イメージにする前に NSData オブジェクトにダウンロードする必要があるかどうかを確認できません。また、initWithContents... を try... catch... finally ブロックに入れる必要があります。

于 2010-11-19T07:57:36.173 に答える
1

ここには 2 つの可能性があります。

1) 画像ファイル名が適切ではありません。つまり、ファイル名は大文字と小文字が区別されます。大文字と小文字の問題かもしれません。

2) イメージ プロパティからターゲット名のチェックを外した可能性があります。つまり、イメージは、コンパイルしているプロジェクトのターゲットのメンバーではありません。これを確認するには、XCode プロジェクト内の任意のイメージ名を右クリックします --> [情報を見る] を選択します --> [ファイル情報] ダイアログから [ターゲット] タブを選択します --> ターゲット名の近くにあるチェックボックスのステータスを確認します。場合によっては、選択/チェックすると、奇妙な問題が発生します。ただし、選択されていない/チェックされていない場合は、コンパイル後に作成されるバンドル ファイルにイメージが追加されていないことを意味します。

ここでの 3 番目の可能性は、参照している画像を追加していない可能性があることです。プロジェクト階層を再確認し、すべてのリソースが存在するかどうかを確認してください。

于 2010-11-19T07:00:52.677 に答える
0

NSURL *imageURL = [NSURL URLWithString:@"bundle://background.png"];

于 2010-11-24T20:25:55.927 に答える
0

こんにちは、次のコードを使用してください

[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"background" ofType:@"png"]];

于 2010-11-19T08:45:34.497 に答える