我的代码
NSMutableString *s= (NSMutableString *)[@"http://www.yahoo.com/index.html" stringByDeletingLastPathComponent];
我期望s的结果是
http://www.yahoo.com
但show s上面的代码是:
http:/www.yahoo.com
欢迎评论
答案 0 :(得分:3)
您应该使用NSURL
,而不是NSString
:
NSURL *url = [[NSURL URLWithString:@"http://www.yahoo.com/index.html"] URLByDeletingLastPathComponent];
屈服:
如果您绝对需要一个字符串,则可以执行以下操作:
NSString *urlString = url.absoluteString;
或者,如果您确实需要可变字符串,请不要将其强制转换为NSMutableString
,但要创建可变副本:
NSMutableString *urlString = [url.absoluteString mutableCopy];
但是,通常,在可能的情况下,在处理URL时应坚持使用NSURL
。并尝试使用文件路径时,请改用文件URL。
答案 1 :(得分:0)
此方法的注释解释如下。
Apple Document:请注意,此方法仅适用于文件路径(不适用于URL的字符串表示形式)。
但是您的字符串显然是完整的URL地址,不属于文件路径,因此我们将使用URL分类URLByDeletingLastPathComponent来将它们组装为URL
NSString *urlString = @"http://www.yahoo.com/index.html";
NSURL* URL = [NSURL URLWithString: urlString];
NSURL* lastPathUrl = [URL URLByDeletingLastPathComponent];
NSString* lastPathString = lastPathUrl.absoluteString;
NSLog(@"---%@---", lastPathString);