我有一个NSMutable字典,它以简单的fileone形式包含文件ID及其文件名+扩展名.doctor 或文件二.pdf.我需要确定文件的类型,以便在我的UITableView中正确显示相关图标.以下是我到目前为止所做的.

NSString *docInfo = [NSString stringWithFormat:@"%d", indexPath.row]; //Determine what cell we are formatting
NSString *fileType = [contentFiles objectForKey:docInfo]; //Store the file name in a string

我编写了两个正则表达式来确定我正在查看的文件类型,但它们从未返回正面结果.我以前没有在iOS编程中使用过regex,所以我不能完全确定我是否做得对,但我基本上是从类描述页面复制代码的.

    NSError *error = NULL;
NSRegularExpression *regexPDF = [NSRegularExpression regularExpressionWithPattern:@"/^.*\\.pdf$/" options:NSRegularExpressionCaseInsensitive error:&error];
NSRegularExpression *regexDOC = [NSRegularExpression regularExpressionWithPattern:@"/^.*\\.(doc|docx)$/" options:NSRegularExpressionCaseInsensitive error:&error];
    NSUInteger numMatch = [regexPDF numberOfMatchesInString:fileType options:0 range:NSMakeRange(0, [fileType length])];
    NSLog(@"How many matches were found? %@", numMatch);

我的问题是,有没有更简单的方法?如果不是,我的正则表达式是否不正确?最后,如果我必须使用它,它在运行时会很昂贵吗?我不知道用户的平均文件量是多少.

非常感谢.

推荐答案

你在找[fileType pathExtension]

NSString Documentation: pathExtension

Objective-c相关问答推荐

如何在 NSImage CIFilter ObjC 周围创建边框

NSViewController 中的 viewDidLoad?

如何在 iOS Objective-C 头文件中将函数标记为已弃用?

将 CSS 插入 UIWebView / WKWebView 中加载的 HTML

声明变量id和NSObject *有什么区别?

如何初始化 NSString 的数组?

找不到名为ProjectName的目标

如何从 Xcode4 生成 UML 图

如何隐藏/显示导航栏中的右键

用于 iOS 开发的 LLVM 与 GCC

如何从 CGPoint 和 CGSize 创建 CGRect?

Electron邮件镇静 iOS 8

如何从输入 IB 的 UILabel 文本中插入新行 \n?

在 Objective-C 中_和touch之间的区别

[NSMutableArray array] 与 [[NSMutableArray alloc] init] 之间的区别

`[super viewDidLoad]` 约定

通过点击状态栏滚动到 UITableView 的顶部

所有异常断点在模拟器上无缘无故停止

iPhone如何在打字时获取UITextField的文本?

@synthesized 保留属性的释放是如何处理的?