Tôi có một từ điển NSMutable có chứa ID tệp và tên tệp + đuôi của chúng trong dạng đơn giản của fileone.doc hoặc filetwo.pdf. Tôi cần phải xác định loại tập tin đó là để hiển thị chính xác một biểu tượng liên quan trong UITableView của tôi. Đây là những gì tôi đã làm cho đến nay.Tải phần mở rộng của một tập tin chứa trong NSString
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
Tôi đã viết hai regex để xác định loại tệp tôi đang xem, nhưng chúng không bao giờ trả lại kết quả tích cực. Tôi đã không sử dụng regex trong lập trình iOS trước đây, vì vậy tôi không hoàn toàn chắc chắn nếu tôi làm điều đó đúng, nhưng tôi về cơ bản đã sao chép mã từ trang Mô tả lớp.
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);
Câu hỏi của tôi là, có cách nào dễ dàng hơn để thực hiện việc này không? Nếu không, regex của tôi có đúng không? Và cuối cùng nếu tôi phải sử dụng điều này, thì có tốn kém trong thời gian chạy không? Tôi không biết số lượng tệp trung bình mà người dùng sẽ có.
Cảm ơn bạn.
Ồ, không biết rằng NSString có thuộc tính 'pathExtension' – remy
Objective-C chỉ làm cho mọi thứ dễ dàng như vậy; Tôi không cần phải nghĩ đến những giải pháp khó như vậy! Cảm ơn bạn David. – TheJer
Im vui vì tôi đã không thử và tự mình làm chức năng này – Will