我有一些源代码来获取url的文件名
例如:
我希望得到一个.pdf
因为我可以得到的加入2个NSStrings的方法是'appendString',它只用于在右侧添加字符串,所以我打算从字符串' http://www.google.com的右侧逐个检查每个字符串/a.pdf ',当它到达char'/'时,停止检查,返回字符串fdp.a,之后我将fdp.a更改为a.pdf
源代码如下
-(NSMutableString *) getSubStringAfterH : originalString:(NSString *)s0
{
NSInteger i,l;
l=[s0 length];
NSMutableString *h=[[NSMutableString alloc] init];
NSMutableString *ttt=[[NSMutableString alloc] init ];
for(i=l-1;i>=0;i--) //check each char one by one from the right side of string 'http://www.google.com/a.pdf', when it reach at the char '/', stop
{
ttt=[s0 substringWithRange:NSMakeRange(i, 1)];
if([ttt isEqualToString:@"/"])
{
break;
}
else
{
[h appendString:ttt];
}
}
[ttt release];
NSMutableString *h1=[[[NSMutableString alloc] initWithFormat:@""] autorelease];
for (i=[h length]-1;i>=0;i--)
{
NSMutableString *t1=[[NSMutableString alloc] init ];
t1=[h substringWithRange:NSMakeRange(i, 1)];
[h1 appendString:t1];
[t1 release];
}
[h release];
return h1;
}
Run Code Online (Sandbox Code Playgroud)
h1可以重新启动coorect字符串a.pdf,但是如果它返回到调用它的代码,在while系统报告'double free***之后在malloc_error_break中设置一个断点来调试'
我检查了很长时间,如果我删除了代码,我就知道了
ttt = [s0 substringWithRange:NSMakeRange(i,1)];
一切都会好的(当然getSubStringAfterH无法返回我预期的正确结果.),没有报告错误.
我试着修复这个bug几个小时,但仍然没有任何线索.
欢迎任何评论
谢谢interdev
小智 177
如果url是NSString,则以下行完成工作:
NSString *filename = [url lastPathComponent];
Run Code Online (Sandbox Code Playgroud)
如果url是NSURL,那么以下工作就完成了:
NSString *filename = [[url path] lastPathComponent];
Run Code Online (Sandbox Code Playgroud)
小智 62
试试这个:
编辑:来自评论
NSString *url = @"http://www.google.com/a.pdf";
NSArray *parts = [url componentsSeparatedByString:@"/"];
NSString *filename = [parts lastObject];
Run Code Online (Sandbox Code Playgroud)
我想如果你已经有了这个NSURL
对象,那么lastPathComponent
从iOS 4开始就有方法可用.
NSURL *url = [NSURL URLWithString:@"http://www.google.com/a.pdf"];
NSString *filename = [url lastPathComponent];
Run Code Online (Sandbox Code Playgroud)
斯威夫特 3
假设您的网址是http://www.google.com/a.pdf
let filename = url.lastPathComponent
\\filename = "a.pdf"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
39297 次 |
最近记录: |