1

我有一个NSString哪个是 URL。这个网址需要删减:

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变量应该有 value http://www.test.com/folder/,所以testfolder应该删掉。所以我试图找到NSRange testfolder用空字符串替换它。

但它不起作用。我做错了什么?

4

3 回答 3

3

试试这个:

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

你应该得到>http://www.test.com/folder/

于 2011-11-21T15:35:24.907 回答
3

您可以将其转换为 URL 并使用-[NSURL URLByDeletingLastPathComponent]

NSString *myURLString = @"http://www.test.com/folder/testfolder";
NSURL *myURL = [NSURL URLWithString:myURLString];
myURL = [myURL URLByDeletingLastPathComponent];
myURLString = [myURL absoluteString];
于 2011-11-21T15:36:14.687 回答
0

您不能使用 [myURL rangeOfString:@"/" options:NSBackwardsSearch] 返回的 NSRange,因为它的长度是“1”。因此,为了保持您使用 NSRange 的想法(使用 stringByDeletingLastPathComponent 的其他回复似乎也非常有效),您可以这样做:

NSRange *range=[myURL rangeOfString:@"/" options:NSBackwardsSearch];
NSString *test = [myURL stringByReplacingCharactersInRange:NSMakeRange(range.location,test.length-range.location) withString:@""];
于 2011-11-21T15:43:41.807 回答