2011-11-21 3 views
1

나는 URL이 NSString입니다.Objective-C : 부분 문자열 및 바꾸기

NSString *myURL = @"http://www.test.com/folder/testfolder"; 
NSString *test = [myURL stringByReplacingCharactersInRange:[myURL rangeOfString:@"/" options:NSBackwardsSearch] withString:@""]; 

나는이 URL http://www.test.com/folder/testfolder을 가지고 있고 나는 test 변수 값 http://www.test.com/folder/을해야합니다, 그래서 testfolder 절단되어야한다 :이 URL은 절단해야합니다. 그래서 NSRangetestfolder을 빈 문자열로 바꾸려고했습니다.

하지만 작동하지 않습니다. 내가 뭘 잘못하고 있니?

답변

3

당신은 URL에 전원을 켜고 사용할 수 있습니다 -[NSURL URLByDeletingLastPathComponent] :

NSString *myURLString = @"http://www.test.com/folder/testfolder"; 
NSURL *myURL = [NSURL URLWithString:myURLString]; 
myURL = [myURL URLByDeletingLastPathComponent]; 
myURLString = [myURL absoluteString]; 
+0

이 버전에서는 'stringByDeletingLastPathComponent'로 해결할 해결책 대신 엔딩 슬래시가 그대로 있습니다. – Tim

3

이 시도 :

NSString *myURL = @"http://www.test.com/folder/testfolder"; 
NSString *test = [myURL stringByDeletingLastPathComponent]; 
NSLog(@"%@", test); 

당신이 가야>http://www.test.com/folder/

+0

나는 URL을 얻을 수 있지만, "/"끝이없는 -> 'http : // www.test.com/fold'. – Tim

0

당신은 NSRange에 의해 반환 사용할 수 없습니다 [myURL rangeOfString : @ "/"options : NSBackwardsSearch] 길이가 "1"이기 때문에. 그래서 여기 당신이 그것을 할 수있는 방법이며, (stringByDeletingLastPathComponent도 매우 유효한 것으로 보인다 사용하여 다른 대답) NSRange를 사용하도록 아이디어를 유지하기 :

NSRange *range=[myURL rangeOfString:@"/" options:NSBackwardsSearch]; 
NSString *test = [myURL stringByReplacingCharactersInRange:NSMakeRange(range.location,test.length-range.location) withString:@""]; 
관련 문제