2016-10-26 1 views
0

나는 URL을 가지고 있는데, 으로 변환 할 수 없습니다.objective c NSURL로 변환하는 특수 URL

NSString * mURL = @"http://cl3.webterren.com/1.gif?z=7&a=157ffb99379&b=%u5149%u660E%u7F51_%u65B0%u95FB%u89C6%u91CE%u3001%u6587%u5316%u89C6%u89D2%u3001%u601D%u60F3%u6DF1%u5EA6%u3001%u7406%u8BBA%u9AD8%u5EA6&B=UTF-8&c=http%3A//gmw.cn/%3F_wdxid%3D000000000000000000000000000000000000000000%26_wdc%3D0%26_wdt%3D012%26&d=&e=0&f=0&H=gmw.cn&E=0&r=6c4a9d9057c8bcef&s=0&t=0&u=1&i=zh-tw&j=0&k=320x568&l=32&m=&n=&o=8"; 
    NSString *pathComponent = [mURL stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
    NSURL* uri = [NSURL URLWithString:pathComponent]; 
    NSLog(@"uri host = %@", uri.host); 
    NSLog(@"uri path = %@", uri.path); 

그리고 호스트와 경로는 (null)입니다. 이 문제를 어떻게 해결할 수 있습니까?

+2

'? –

+0

죄송합니다. 방금 수정했습니다. – Andy

+2

세 번째 줄이 올바르지 않습니다. 그렇게 NSURL을 만들 수 없습니다. DOU : 'NSURL URLWithString :' –

답변

3

코드 아래에 확인하시기 바랍니다, 그것은

NSString * mURL = @"http://cl3.webterren.com/1.gif?z=7&a=157ffb99379&b=%u5149%u660E%u7F51_%u65B0%u95FB%u89C6%u91CE%u3001%u6587%u5316%u89C6%u89D2%u3001%u601D%u60F3%u6DF1%u5EA6%u3001%u7406%u8BBA%u9AD8%u5EA6&B=UTF-8&c=http%3A//gmw.cn/%3F_wdxid%3D000000000000000000000000000000000000000000%26_wdc%3D0%26_wdt%3D012%26&d=&e=0&f=0&H=gmw.cn&E=0&r=6c4a9d9057c8bcef&s=0&t=0&u=1&i=zh-tw&j=0&k=320x568&l=32&m=&n=&o=8"; 
NSString * webStringURL = [mURL stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]]; 
NSURL* url = [NSURL URLWithString:webStringURL]; 
NSLog(@"uri host = %@", url.host); 
NSLog(@"uri path = %@", url.path); 
1

확인, 작동하고 신속한 3 년이

NSString * mURL = @"http://cl3.webterren.com/1.gif?z=7&a=157ffb99379&b=%u5149%u660E%u7F51_%u65B0%u95FB%u89C6%u91CE%u3001%u6587%u5316%u89C6%u89D2%u3001%u601D%u60F3%u6DF1%u5EA6%u3001%u7406%u8BBA%u9AD8%u5EA6&B=UTF-8&c=http%3A//gmw.cn/%3F_wdxid%3D000000000000000000000000000000000000000000%26_wdc%3D0%26_wdt%3D012%26&d=&e=0&f=0&H=gmw.cn&E=0&r=6c4a9d9057c8bcef&s=0&t=0&u=1&i=zh-tw&j=0&k=320x568&l=32&m=&n=&o=8"; 
NSURL *pathComponent = [NSURL URLWithString:[mURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
NSLog(@"uri host = %@", pathComponent.host); 
NSLog(@"uri path = %@", pathComponent.path); 
0

:

코드가 host`와 '경로'입니다
let mURL = "http://cl3.webterren.com/1.gif?z=7&a=157ffb99379&b=%u5149%u660E%u7F51_%u65B0%u95FB%u89C6%u91CE%u3001%u6587%u5316%u89C6%u89D2%u3001%u601D%u60F3%u6DF1%u5EA6%u3001%u7406%u8BBA%u9AD8%u5EA6&B=UTF-8&c=http%3A//gmw.cn/%3F_wdxid%3D000000000000000000000000000000000000000000%26_wdc%3D0%26_wdt%3D012%26&d=&e=0&f=0&H=gmw.cn&E=0&r=6c4a9d9057c8bcef&s=0&t=0&u=1&i=zh-tw&j=0&k=320x568&l=32&m=&n=&o=8"; 
    if let webStringURL = mURL.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlFragmentAllowed), 
     let url = NSURL(string: webStringURL) { 
     debugPrint("uri host = \(url.host!)") 
     debugPrint("uri path = \(url.path!)") 
    } 
관련 문제