39

アプリケーションに次のコードがあります。

NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:pathOfThumbNail]];

pathOfThumbNailには次のパスがあります


http://70.84.58.40/projects/igolf/TipThumb/GOLF 58B.jpg


サファリブラウザで上記のパスを開くと、パスが自動的に変更され、画像が正常に表示されます。

http://70.84.58.40/projects/igolf/TipThumb/GOLF%2058B.jpg


ただし、iPhoneでは、パスにスペースがあるため、画像がnsdataに読み込まれません。

4

3 に答える 3

99

使用:stringByAddingPercentEscapesUsingEncoding:

特定のエンコーディングを使用してレシーバーの表現を返し、レシーバーを有効なURL文字列に変換するために必要なエスケープ率を決定します。

-(NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)encoding

エンコーディングを使用して、レシーバーを有効なURL文字列に変換するために必要なエスケープ率を決定するレシーバーの表現。エンコーディングが特定の文字をエンコードできない場合はnilを返します

@ruleによるリクエストごとに追加

NSString* urlText = @"70.84.58.40/projects/igolf/TipThumb/GOLF 58B.jpg";
NSString* urlTextEscaped = [urlText stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString: urlTextEscaped];
NSLog(@"urlText:        '%@'", urlText);
NSLog(@"urlTextEscaped: '%@'", urlTextEscaped);
NSLog(@"url:            '%@'", url);

NSLog出力:

urlText: '70.84.58.40 / projects / igolf / TipThumb / GOLF 58B.jpg'  
urlTextEscaped: '70.84.58.40 / projects / igolf / TipThumb / GOLF%2058B.jpg'  
url: '70.84.58.40 / projects / igolf / TipThumb / GOLF%2058B.jpg'  
于 2009-09-17T20:29:02.063 に答える
16

迅速な 3.0 アプローチ (stringByAddingPercentEscapesUsingEncoding および stringByAddingPercentEncodingWithAllowedCharacters は非推奨のようです):

let urlString ="your/url/".addingPercentEncoding( withAllowedCharacters: .urlQueryAllowed)
于 2016-09-27T10:40:32.350 に答える