1

これはこれまでの私のコードです:

NSString *listedImageURL = listedProduct.image;

NSLog(@"URL: %@", listedImageURL);

このコードは正常に機能し、NSLogは正しいURLを表示します。しかし、次のコードを試してみると、NSLogが表示されます(null)。

NSString *listedImageURL = listedProduct.image;

NSURL *imageURL = [NSURL URLWithString:listedImageURL];
NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
UIImage *image = [UIImage imageWithData:imageData];

私は何が間違っているのですか?

4

2 に答える 2

5

リロワーは正しい方向に進んでいると私は信じています、ドキュメントは次のように述べています:

このメソッドは、URLStringに必要なパーセントエスケープコード(':'、'/'、'%'、'#'、';'、および'@')が含まれていることを想定しています。'%'エスケープはUTF-8を介して変換されることに注意してください。

変換するURLの例をいくつか投稿する場合は、問題の原因となっている可能性のある文字を特定することが役立つと思います。

ロギングをお勧めします:listedImageURL

そしてまた実行します:

NSString *escapedImageUrl = [listedProduct.image stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

次に、それをログに記録します。

これにより、何が逃げられ、何が見逃されているかがわかります。それは、漂遊スペースのような単純なものである可能性があります。

NSUTF8StringEncodingの代わりにNSASCIIStringEncodingを使用してみて、それが違いを生むかどうかを確認することもできます。

于 2012-06-01T14:21:44.850 に答える
2

文字列からURLへの変換のため、nullになる可能性があります。

以下のこのコードを試してください。

NSString *listedImageURL = [listedProduct.image stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *imageURL = [NSURL URLWithString:listedImageURL];
NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
UIImage *image = [UIImage imageWithData:imageData];

私はあなたのために働くだろうと思います。幸運を。

于 2012-06-01T13:40:20.500 に答える