0

我需要使用一个NSURL对象来访问同一主机上的不同资源。

这是我所做的:

#define MY_HOST @"my.server.eu"
NSURL *url = [[NSURL alloc] initWithScheme:@"http" host:MY_HOST path:@"/"];

现在我需要处理

如何修改NSURL对象的路径?
为什么我们不能简单地做url.path = @"path1"

4

2 回答 2

4

如何修改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]]];
于 2013-01-23T11:37:12.713 回答
1

您应该按照自己的方式创建基本 URL,然后使用+[NSURL URLWithString:relativeToURL:].

于 2013-01-23T12:10:28.747 回答