매우 쉬울 수도 있지만 URLWithString:
여기에서 nil을 반환 하는 이유를 알 수없는 것 같습니다 .
//localisationName is a arbitrary string here
NSString* webName = [localisationName stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString* stringURL = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@,Montréal,Communauté-Urbaine-de-Montréal,Québec,Canadae&output=csv&oe=utf8&sensor=false&key=", webName];
NSURL* url = [NSURL URLWithString:stringURL];
답변
하드 코딩 된 URL에서도 비 ASCII 문자를 이스케이프해야합니다.
//localisationName is a arbitrary string here
NSString* webName = [localisationName stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString* stringURL = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@,Montréal,Communauté-Urbaine-de-Montréal,Québec,Canadae&output=csv&oe=utf8&sensor=false", webName];
NSString* webStringURL = [stringURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL* url = [NSURL URLWithString:webStringURL];
전체 문자열의 이스케이프에 의해 처리되므로 localisationName의 이스케이프를 제거 할 수 있습니다.
답변
파일 관리자에 저장된 파일을 다룰 때이 기능을 사용하십시오.
NSURL *_url = [NSURL fileURLWithPath:path];
답변
을 사용해야한다고 생각합니다 -[NSString stringByAddingPercentEscapesUsingEncoding:]
. Apple 문서를 참조하십시오 .
또 다른 의견은 이전 타이머로서 소스 파일에 ASCII가 아닌 문자를 넣는 것이 약간 불편하다는 것입니다. 즉,이 Apple 문서 는 10.4부터 UTF-16 문자열이 @"..."
. 어떻게 든 GCC는 Latin-1의 소스 파일을 바이너리에서 UTF-16으로 올바르게 변환하는 것처럼 보이지만 소스 코드 내에서만 7 비트 ASCII 문자를 사용하고 NSLocalizedString
.
답변
나는 당신의 악센트가있는 캐릭터가 물건을 던지고 있다고 생각합니다. -stringByAddingPercentEscapesUsingEncoding :에 의해 처리되지 않습니다.
답변
NSURL URLWithString : @ “”는 URL이 RFC 2396을 따르지 않고 이스케이프되어야하는 경우 nil을 반환합니다.
링크에서 rfc2396 을 읽으면 많은 세부 정보를 얻을 수 있습니다.
문제가되는 문자가 어디에 있는지 확인하기 위해 찾은 훌륭한 사이트, URL에 대한 경로 옵션을 선택하십시오.
http://www.websitedev.de/temp/rfc2396-check.html.gz
답변
URLWithString : 호출은 전달 된 문자열이 잘못된 경우 nil을 반환합니다. NSURL은 잘못된 URL에 대해 nil을 반환하므로 NSURL 생성 방법에 전달되는 내용을 정확히 확인하기 위해 문자열을 NSLog하고 중단 점을 설정합니다. URLWithString이 하드 코딩 된 값으로 작동하면 전달하는 모든 것이 잘못되었다는 추가 증거입니다. 보다
답변
NSString없이 직접 NSURL을 사용할 수 있습니다.
//.h 파일
@interface NewsBrowser : UIViewController {
UIWebView *webView;
NSURL *NewsUrl;
}
@property (nonatomic, retain) IBOutlet UIWebView *webView;
@property(nonatomic,assign)NSURL *NewsUrl;
@end
//.m 파일
[webView loadRequest:[NSURLRequest requestWithURL:NewsUrl]];
그리고 다른 뷰 (NewsUrl 변수 사용)에서이 뷰로 URL을 전달합니다.
시도 해봐.