NSURL - 设置修改路径

时间:2013-01-23 11:29:06

标签: ios nsurl

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

以下是我的工作:

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

现在我需要处理

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

2 个答案:

答案 0 :(得分:4)

  

如何修改NSURL对象的路径?

     

为什么我们不能简单地url.path = @"path1"

因为NSURL是不可变对象,所以之后无法更改其属性。 NSMutableURL不存在,但是在许多人的愿望清单上。

为了实现您所追求的目标,您将不得不制作3个单独的NSURL对象,我担心。为此,您可以方便数组中的路径:

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]]];

答案 1 :(得分:1)

您应该像现在一样制作基本网址,然后使用+[NSURL URLWithString:relativeToURL:]构建与其相关的其他网址。