问题描述
URLWithString:(NSString *)str relativeToURL:(NSURL *)baseURL中baseURL结尾字段的相关问题拼接后被去掉的问题,情况如下图:
NSURL *url = [NSURL URLWithString:@"http://example.com/v1"];
NSLog(@"%@",url);
NSURL *newURL = [NSURL URLWithString:@"foo?bar=baz" relativeToURL:url];
NSLog(@"newURL:%@",[newURL absoluteString]);
wenti.png
其中“v1”拼接后就被去掉了。
解决方法
在baseURL后拼接一个空字符串,即可解决这个问题,如果baseURL本身结尾带“/”,则空字符串不产生作用;如果baseURL结尾没有“/”,则拼接完成后会在baseURL上加入“/”。
如果这时再执行URLWithStringrelativeTOURL:就不会去掉任何字段了
url = [url URLByAppendingPathComponent:@""];
NSLog(@"****url:%@",[url absoluteString]);
newURL = [NSURL URLWithString:@"foo?bar=baz" relativeToURL:url];
NSLog(@"====newURL:%@",[newURL absoluteString]);
solve.png
网友评论