如何获取文件扩展名(比较)



我正在将 Dropbox 中的文件目录解析为 mutablearray,以在表视图中显示它。

如何比较文件扩展名?(.doc或.jpg,....)

if ([[NSString stringWithFormat:@"%@",[test objectAtIndex:indexPath.row]] isEqualToString:@"??????"] ) {
    [cell.extensionView setImage:[UIImage imageNamed:@"word.png"]];
}

isEqualTo什么? 是否可以使用通配符?

不要使用stringWithFormat,除非你真的有格式。如果你做这样的事情,你的代码会更干净:

NSString *filename = [text objectAtIndex:indexPath.row];
NSString *ext = [filename pathExtension];
if ([ext isEqualToString:@"doc"]) {
    [cell.extensionView setImage:[UIImage imageNamed:@"word.png"]];
} else if ([ext isEqualToString:@".jpg"]) {
    [cell.extensionView setImage:[UIImage imageNamed:@"jpeg.png"]];
}

有比设置这个大if-else块更好的方法。我想你想检查很多不同的扩展。设置带有扩展名和图像的字典。像这样:

NSDictionary *extensionThumbnails = @{
    @"doc" : [UIImage imageNamed:@"word.png"],
    @"xls" : [UIImage imageNamed:@"excel.png"],
    @"jpg" : [UIImage imageNamed:@"jpeg.png"]
};

为您拥有的每个扩展和图像添加一个条目。然后你的原始代码(现在使用现代的Objective-C语法)变成:

NSString *filename = text[indexPath.row];
NSString *ext = [filename pathExtension];
UIImage *thumbnail = extensionThumbnails[ext];
if (!thumbnail) {
    thumbnail = [UIImage imageNamed:@"unknown.png"];
}
[cell.extensionView setImage:thumbnail];

相关内容

  • 没有找到相关文章