objective-c - 如何强制使用 NSPredicate 从硬盘检索图像的特定顺序
问题描述
给定以下代码并且硬盘中的文件是图像,如何强制从硬盘中检索文件的特定顺序。如何修改下面的代码,以便即使硬盘中的顺序由于排序问题而发生变化,图像的检索也必须遵循特定的顺序,例如,现在 HD 中的文件按名称排序..few seconds早些时候,排序更改为通过日期或其他方式。
换句话说,如何以编程方式强制文件的检索始终按字母顺序或任何其他条件
代码
NSString *bundleRoot = [[NSBundle mainBundle] bundlePath];
NSFileManager *fm = [NSFileManager defaultManager];
NSArray *dirContents = [fm contentsOfDirectoryAtPath:bundleRoot error:nil];
NSString *pred = [NSString stringWithFormat:@"SOME TEXT 'iconxxx%@x.png' ", acx];
NSPredicate *fltr = [NSPredicate predicateWithFormat:pred];
NSArray *onlys = [dirContents filteredArrayUsingPredicate:fltr];
解决方案
NSFilemanager
不负责对文件列表进行排序。使用谓词过滤后,您只需对数组进行排序。通常localizedStandardCompare
用于像 Finder 或任何其他文件管理器一样进行排序。
// sort the filtered array
NSArray *sorted = [onlys sortedArrayUsingSelector:@selector(localizedStandardCompare:)];
推荐阅读
- spring-boot - 在 apache 目录 studio+Spring boot 中创建条目不起作用
- docker - Portainer 是否有可能从正在运行的容器创建 docker-compose yml 文件?
- azure - OpenAPI 类型模式写入 Swagger 类型字段
- javascript - 反应:更新对象数组中的属性后,属性更改为未定义
- python - JSON解析时的KeyError
- java - Java实例变量二维数组没有被方法改变
- windows - 根据 netstat 连接状态更改 cmd 背景颜色
- jestjs - 一个函数使用了一个外部变量,如何用 Jest 测试它?
- python - 如何在 tkinter 中绑定键“<”?
- leaflet - 如何将开关(输入复选框)绑定到 Leaflet.js 中的互斥(输入单选)?