GET国際文字 (私の場合はヘブライ語ですが、何でもかまいません)を使用して Web サーバーにアクセスする必要があります。だから私はNSString大丈夫ですが、
[NSURL URLWithString:urlString]; // returns nil.
おそらく、国際文字をパーセント コードに変換する必要があると思います。
そうするためのObjective-cの組み込みメソッドはありますか?
-stringByAddingPercentEscapesUsingEncoding:はい、あります。方法が必要です。
[NSURL URLWithString:[string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSURLなしで直接使用できますNSString:
//.h file
@interface NewsBrowser : UIViewController {
UIWebView *webView;
NSURL *NewsUrl;
}
@property (nonatomic, retain) IBOutlet UIWebView *webView;
@property (nonatomic, assign) NSURL *NewsUrl;
@end
//.m file
[webView loadRequest:[NSURLRequest requestWithURL:NewsUrl]];
NSURL別のビュー (NewsUrl変数を使用) からこのビューに渡すだけです。
これにより、 が に含まれているため、 がNSURL *url返されないことが保証されます。nil"|"urlString
NSString *urlString = [[NSString stringWithFormat:@"http://api.service.com/Service.svc?sort=name|ascending"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:urlString];
+ (NSURL*) URLWithStringWithSpecialChars:(NSString *)sURL
{
NSURL *url = [NSURL URLWithString:sURL];
if(url == nil)
return [NSURL URLWithString:[sURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
else
return url;
}
URLWithString の代わりにこの関数を呼び出す: 有効な NSURL が常に返されるようにする必要があります (必要な場合は nil ではなく)。