2012-02-19 3 views
0

동물 목록과 특별한 버튼이 있습니다. 버튼을 누르면 Wikipedia에 가서이 동물에 대해 더 읽고 싶습니다. 그래서이 코드 작성 : Xcode openURL에서 링크를 읽을 수 없습니다.

-(IBAction)goWiki:(id)sender 
{ 
    NSString *wikiUrl = "http://ru.wikipedia.org/wiki/"; 
    NSString *url = [NSString stringWithFormat:@"%@%@",wikiUrl,animalTitle]; 
    [[UIApplication sharedApplication]openURL:[NSURL URLWithString:url]]; 
    NSLog(@"%@",url); 
} 

NSLog

이 URL이 제대로 기록 된 것을 보여줍니다, 그러나 아무 일도하지 않습니다. 나는때문에 99,9 % 확신한다. 제 모국어는 러시아어이고 animalTitle은 (는) 러시아 동물 이름입니다. 그래서 만약 링크 http://ru.wikipedia.org/wiki/Frog처럼 고운이며 작동하지만 그와 같은 http://ru.wikipedia.org/wiki/Лягушка 아무 일도 발생하지 않는 경우. 아이디어가 있으면 어떻게 러시아 기사로 이동할 수 있습니까? 감사합니다.

+2

. 항상 NSURL로 시작하고 URLByAppendingPathComponent :와 같은 메소드를 사용하십시오. 그렇게 수동으로 슬래시를 삽입하지 마십시오. "http : //"를 수동으로 입력하지 마십시오. 'initWithScheme : host : path :'로 URL을 구성했다면, 아마이 문제는 발생하지 않았을 것입니다. – matt

+0

답장을 보내 주셔서 감사합니다. – SmartTree

답변

3

사용 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding로 -

URL을 구성하는 방법이 아니다
-(IBAction)goWiki:(id)sender 
{ 
    NSString *wikiUrl = @"http://ru.wikipedia.org/wiki/"; 
    NSString *url = [NSString stringWithFormat:@"%@%@",wikiUrl,animalTitle]; 


    url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

    [[UIApplication sharedApplication]openURL:[NSURL URLWithString:url]]; 
    NSLog(@"%@",url); 
} 
+0

이 코드는 완벽하게 작동합니다! 대단히 감사합니다! – SmartTree

1

먼저 animalTitle 문자열을 CFURLCreateStringByAddingPercentEscapes에 전달해보십시오. 다음