我需要使用一个NSURL
对象来访问同一主机上的不同资源。
这是我所做的:
#define MY_HOST @"my.server.eu"
NSURL *url = [[NSURL alloc] initWithScheme:@"http" host:MY_HOST path:@"/"];
现在我需要处理
如何修改NSURL
对象的路径?
为什么我们不能简单地做url.path = @"path1"
?
我需要使用一个NSURL
对象来访问同一主机上的不同资源。
这是我所做的:
#define MY_HOST @"my.server.eu"
NSURL *url = [[NSURL alloc] initWithScheme:@"http" host:MY_HOST path:@"/"];
现在我需要处理
如何修改NSURL
对象的路径?
为什么我们不能简单地做url.path = @"path1"
?
如何修改
NSURL
对象的路径?为什么我们不能简单地做
url.path = @"path1"
?
因为NSURL
是一个不可变的对象,之后你不能改变它的属性。NSMutableURL
不存在,但在许多人的愿望清单上。
为了实现您所追求的目标,NSURL
恐怕您将不得不制作 3 个单独的对象。为此,您可以方便数组中的路径:
NSString *host = @"http://my.server.eu/";
NSArray *paths = @[@"path1", @"path2", @"path3"];
NSURL *path1 = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@", host, path[0]]];
NSURL *path2 = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@", host, path[1]]];
NSURL *path3 = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@", host, path[2]]];
您应该按照自己的方式创建基本 URL,然后使用+[NSURL URLWithString:relativeToURL:]
.