iphone - 获取 URL 的文件名的函数

标签 iphone

我有一些源代码来获取网址的文件名

例如:

http://www.google.com/a.pdf

我希望得到一个.pdf

因为我能得到的连接2个NSString的方法是'appendString',它只能在右侧添加一个字符串,所以我打算从字符串' http://www.google.com/a.pdf 的右侧开始逐个检查每个字符。 ',当到达字符'/'时,停止检查,返回字符串 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;
}

h1可以返回正确的字符串a.pdf,但是如果它返回到调用它的代码,一段时间后系统会报告 '双重免费 *** 在malloc_error_break中设置断点进行调试'

我检查了很长时间,发现如果我删除了代码

ttt=[s0 substringWithRange:NSMakeRange(i, 1)];

一切都会好的(当然getSubStringAfterH不能返回我期望的正确结果。),没有报错。

我尝试修复该错误几个小时,但仍然没有任何线索。

欢迎大家留言

谢谢 交互开发

最佳答案

如果 url 是 NSString,则以下行将执行此操作:

NSString *filename = [url lastPathComponent];

如果 url 是 NSURL,则执行以下操作:

NSString *filename = [[url path] lastPathComponent];

关于iphone - 获取 URL 的文件名的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2440620/

相关文章:

iphone - 使用 UISearchBar 关闭键盘,而不放弃第一响应者

iphone - 动画 NavigationController 过渡没有动画导航栏

ios - twillo Client Api 是否允许用户从应用程序调用到应用程序而不是 iOS 中的 native 调用?

iphone - Facebook iOS SDK - 写入状态的奇怪效果

iphone - 当显示 Default.png 时,在启动期间在哪里更改状态栏的颜色

ios - 禁用 uicollectionview 水平滚动的外部平移手势

iphone - 将数据从传感器传输到 iPhone

iphone - 为什么开始搜索时我的搜索 TableView 没有出现?

ios - GPUImage:GPUImageThreeInputFilter 适用于静止图像输入,但不适用于相机输入

iphone - 横向模式仅适用于 iPhone 或 iPad