• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 检查文件是否存在于路径中并根据结果设置按钮

[复制链接]
菜鸟教程小白 发表于 2022-12-11 20:28:41 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我想检查文件是否存在并根据结果设置按钮,但我每次都从函数 getAudiofileName 获得 nil 值。这是设计此功能的更好方法。我怎样才能以一种好的方式做到这一点。我在这部分苦苦挣扎。谁能指出我出了什么问题。

        NSString *audioFile = [self getAudiofileName:indexPath.row];
        NSLog(@"audiofile=%@",audioFile); // Getting nil everty time

    if (!audioFile) {
        [SoundsCell.customBtn setImage:[UIImage imageNamed"down.png"] forState:UIControlStateNormal];
        [playBtn setEnabled:NO];
    } else {
        [SoundsCell.customBtn setImage:[UIImage imageNamed"listen.png"] forState:UIControlStateNormal];
        [playBtn setEnabled:YES];
    }



    [SoundsCell.customBtn addTarget:self actionselector(getconnection forControlEvents:UIControlEventTouchUpInside];


    SoundsCell.selectionStyle = UITableViewCellSelectionStyleNone;

    [delegate.delArrAlbumDetailCell addObject:SoundsCell];
    return SoundsCell;

}



- (NSString *)getAudiofileNameint)IndexRow{


    NSLog(@"delegate.SoundsArr %d",[delegate.SoundsArr count]);
    selectedClip = [delegate.SoundsArr objectAtIndex:IndexRow];

    NSString *toendstring;
    NSString *temp = [NSString stringWithFormat"%@.mp3", selectedClip.clip_name];

    NSLog(@"temp =  %@", temp );
    NSLog(@"temp =  %@", selectedClip.clip_url );


    if (temp != nil) 
    {
        toendstring = temp;
        NSLog(@"toendString =%@", toendstring);

    }

    NSString *audioFilePath = [NSString stringWithFormat"%@/%@",self.dataPath,toendstring];
    NSLog(@"playing audioFilePath =%@", audioFilePath);
    NSFileManager *filmanager = [NSFileManager defaultManager];

    if([filmanager fileExistsAtPath:audioFilePath])
    {
        return toendstring;
    }
    else
    {
        return nil;
    }


}

提前致谢



Best Answer-推荐答案


一般评论:

  • 使用 IBOutlet 而不是遍历 nib 顶级对象 - 它更简单。
  • 学会区分类名、实例名和常量(这也适用于 Apple 程序员)。
  • 正如上一张海报所说,不要为“NotExist”返回字符串;返回 nil
  • getAudioFileName: 中的 temp 永远不会有零长度(尽管它可能是 nil)
  • Java 风格的附件名称透露了太多关于程序员的信息
  • 当初始化一个单元格时,你可以把所有在重用时不会改变的东西放在 if (cell == nil) block 中;或者更好的是,在 Nib 中进行。

现在答案。重复使用时单元格可以是任何状态,因此您需要设置下载和播放,例如:

   if (!audioFile) {
       [SoundsCell.customBtn setImage:[UIImage imageNamed"DOWNLOAD.png"] forState:UIControlStateNormal];
       [playBtn setEnabled:NO];
    } else {
       [SoundsCell.customBtn setImage:[UIImage imageNamed"LAY.png"] forState:UIControlStateNormal];
       [playBtn setEnabled:YES];
    }

您可能需要更改操作。

关于ios - 检查文件是否存在于路径中并根据结果设置按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8062273/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap