ウェブApple.pngと[email protected]から2枚の画像をダウンロードしています。私は[UIImage imageNamed:@ "Apple.png"]を使用して、Apple.pngか[email protected]を表示するかどうかを検出するために機能のビルドを使用できるようにします。(iPhone)UIImageの画像で外部画像を表示する名前付き
ここで、これらの画像はどこに保存されますか?私はドキュメントで次のように読む:
ファイルの名前。初めて イメージがロードされる場合、 メソッドは、アプリケーションの メインバンドルに 指定された名前のイメージを探します。
ああ、アプリケーションのメインバンドルは、移動する方法です。ファイルがパスのフォルダに作成し、それが正しいとした場合、私がチェック
NSString *directory = [[NSBundle mainBundle] bundlePath];
NSString *path = [directory stringByAppendingPathComponent:imageName];
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager createFileAtPath:path contents:dataFetcher.receivedData attributes:nil];
:これは私のコードは次のようになります。また、同じフォルダに格納されているかどうかを確認するために、プロジェクトファイルにExample.pngをドラッグしても問題はありません。
ただし、[UIImage imageNamed:@ "Apple.png"]はまだ画像を取得できません。誰にもアイデアはありますか?
編集:
@implementation UIImage(ImageNamedExtension)
+ (UIImage *)imageNamed:(NSString *)name fromDirectory:(NSString *)directory {
NSString *name2x = [name stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@".%@", [name pathExtension]] withString:[NSString stringWithFormat:@"@2x.%@", [name pathExtension]]];
NSString *path = [directory stringByAppendingPathComponent:name];
NSString *path2x = [directory stringByAppendingPathComponent:name2x];
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0) {
if ([fileManager fileExistsAtPath:path2x]) {
return [UIImage imageWithContentsOfFile:path2x];
}
}
return ([fileManager fileExistsAtPath:path]) ? [UIImage imageWithContentsOfFile:path] : nil;
}
@end
eventualyトリックをした:
私はUIImageのカテゴリを作りました。助けてくれてありがとう。
+1のコードフォーマットです。 – WrightsCS
iPhoneのメインバンドルにファイルを作成することはできません。シミュレータはあなたにそれをさせるかもしれませんが、デバイスはそうしてはいけません。ダウンロードしている場合は、別の場所に置く必要があります。 –
@ 2xのみが実装されている場合(つまり、1xも必要な場合など)、カテゴリはiPad(1st gen)の場合に壊れます。おそらく同じ状況下でiPhone 3GS上で破損する可能性があります。 – Jonny