第一種情況 baseURL
中的URL地址以 /
結(jié)尾
NSURL *baseURL = [NSURL URLWithString:@"http://example.com/v1/v2/"];
NSURL *baseURL2 = [NSURL URLWithString:@"foo"relativeToURL:baseURL];
NSURL *baseURL3 = [NSURL URLWithString:@"foo?bar=baz"relativeToURL:baseURL];
NSURL *baseURL4 = [NSURL URLWithString:@"/foo"relativeToURL:baseURL];
NSURL *baseURL5 = [NSURL URLWithString:@"foo/"relativeToURL:baseURL];
NSURL *baseURL6 = [NSURL URLWithString:@"/foo/"relativeToURL:baseURL];
NSURL *baseURL7 = [NSURL URLWithString:@"http://example2.com/"relativeToURL:baseURL];
NSLog(@"baseURL2:%@",[baseURL2 absoluteString]);
NSLog(@"baseURL3:%@",[baseURL3 absoluteString]);
NSLog(@"baseURL4:%@",[baseURL4 absoluteString]);
NSLog(@"baseURL5:%@",[baseURL5 absoluteString]);
NSLog(@"baseURL6:%@",[baseURL6 absoluteString]);
NSLog(@"baseURL7:%@",[baseURL7 absoluteString]);
輸出結(jié)果
2017-06-30 16:16:24.719 test[48991:682179] baseURL2:http://example.com/v1/v2/foo
2017-06-30 16:16:24.719 test[48991:682179] baseURL3:http://example.com/v1/v2/foo?bar=baz
2017-06-30 16:16:24.719 test[48991:682179] baseURL4:http://example.com/foo
2017-06-30 16:16:24.720 test[48991:682179] baseURL5:http://example.com/v1/v2/foo/
2017-06-30 16:16:24.720 test[48991:682179] baseURL6:http://example.com/foo/
2017-06-30 16:16:24.720 test[48991:682179] baseURL7:http://example2.com/
第二種情況 baseURL
中的URL地址不以 /
結(jié)尾
NSURL *baseURL = [NSURL URLWithString:@"http://example.com/v1/v2"];
NSURL *baseURL2 = [NSURL URLWithString:@"foo"relativeToURL:baseURL];
NSURL *baseURL3 = [NSURL URLWithString:@"foo?bar=baz"relativeToURL:baseURL];
NSURL *baseURL4 = [NSURL URLWithString:@"/foo"relativeToURL:baseURL];
NSURL *baseURL5 = [NSURL URLWithString:@"foo/"relativeToURL:baseURL];
NSURL *baseURL6 = [NSURL URLWithString:@"/foo/"relativeToURL:baseURL];
NSURL *baseURL7 = [NSURL URLWithString:@"http://example2.com/"relativeToURL:baseURL];
NSLog(@"baseURL2:%@",[baseURL2 absoluteString]);
NSLog(@"baseURL3:%@",[baseURL3 absoluteString]);
NSLog(@"baseURL4:%@",[baseURL4 absoluteString]);
NSLog(@"baseURL5:%@",[baseURL5 absoluteString]);
NSLog(@"baseURL6:%@",[baseURL6 absoluteString]);
NSLog(@"baseURL7:%@",[baseURL7 absoluteString]);
輸出結(jié)果
2017-06-30 16:41:57.860 test[49329:691038] baseURL2:http://example.com/v1/foo
2017-06-30 16:41:57.861 test[49329:691038] baseURL3:http://example.com/v1/foo?bar=baz
2017-06-30 16:41:57.861 test[49329:691038] baseURL4:http://example.com/foo
2017-06-30 16:41:57.861 test[49329:691038] baseURL5:http://example.com/v1/foo/
2017-06-30 16:41:57.861 test[49329:691038] baseURL6:http://example.com/foo/
2017-06-30 16:41:57.861 test[49329:691038] baseURL7:http://example2.com/
從以上的結(jié)果中可以看出:
- 只要
URLWithString
中的參數(shù)格式是/xx
,即是以/
開(kāi)頭的绢掰,那么輸出結(jié)果就是在baseURL
中的http://example.com
后面直接添加URLWithString
中的參數(shù)域仇,baseURL
中的xx.com
后的路徑參數(shù)等全部不需要了嵌削。 - 如果
URLWithString
中的參數(shù)格式不是以/
開(kāi)頭的,那么就要看baseURL
中的路徑是不是以/
結(jié)尾盆耽,
- 如果是轰绵,那么直接拼接到
baseURL
路徑后面 - 如果不是,那么就需要找到
baseURL
路徑后面倒數(shù)第一個(gè)/
的位置昌执,插入URLWithString
字符串即可烛亦,即刪除baseURL
后面的v2
- 如果
URLWithString
是完整的網(wǎng)址,則直接替換URLWithString
完工....