2013-01-23 5 views
0

NSURL 개체를 사용하여 동일한 호스트의 다른 리소스에 도달해야합니다.NSURL - 수정 경로 설정

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

가 지금은

어떻게 다 처리 할 필요 : 여기

내가 할 것입니다 내 NSURL 개체의 경로를 수정합니까?
우리는 단순히 url.path = @"path1"을 할 수 없습니까?

+1

루프 내에서 문자열을 생성하고이를 NSURL로 변환하는 방법은 무엇입니까? –

+0

이 URL은 여러 다른 위치에서 사용하는 클래스의 public 멤버입니다. 내가 필요할 때마다 NSURL을 다시 만들어야한다고 말하는 것입니까? –

+0

예, NSString * str = [NSString stringwithFormat : @ "% @ % d", url, counter]와 같은 URL로 변환 한 다음 NSURL * finalURL = [NSURL URLWithString : str]; –

답변

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

와우! 좋아, 나는이 객체를 마침내 사용하지 않을 것이라고 생각한다. (실제로 나는 그의 URL 구축 함수를 이용하기 위해 그것을 사용하고 싶었다.) 변하지 않는 설명을 해주셔서 감사합니다. –

+0

오해하지 마세요. NSURL을 사용하면 편리 할 수 ​​있지만 대부분 희망만큼 유연하지는 않습니다. – WDUK

+0

유용 할 것입니다. 나중에 확실히 사용할 것입니다. :) –

1

당신은 당신이하고있는대로 기본 URL을하고 그것을 +[NSURL URLWithString:relativeToURL:]를 사용을 기준으로 다른 사람을 구축해야한다.

+0

이것은 유지 관리가 필요 하겠지만, 내가 얻을 필요가있을 때마다 [[NSURL alloc] initWithString : my_path relativeToURL : url] .absoluteString'을해야합니다. 새 URL 문자열, 안 그래? –

+0

문자열이 필요하다면 문자열을 요청해야합니다. –