c/c++开发人员一定很喜欢用boost库,它有很强大的容器功能,在iOS开发中Array也相当于容器,功能也比较强大。NSArray可以用NSPredicate来过滤数组内容,NSPredicate有点像sql+正则表达,具体语法在此不谈,自己google一堆。
不想打字了(我超级懒),用代码说话:
//找出一个数组 NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *defaultPath = [[NSBundle mainBundle] resourcePath]; NSError *error; NSArray *directoryContents = [fileManager contentsOfDirectoryAtPath:defaultPath error:&error] //匹配字符串,反回结果, SELF==表示数组中每一个元素 NSString *match = @"imagexyz-999.png"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF == %@", match]; NSArray *results = [directoryContents filteredArrayUsingPredicate:predicate]; //近似匹配字符串,类似SQL中的语法 NSString *match = @"imagexyz*.png"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF like %@", match]; NSArray *results = [directoryContents filteredArrayUsingPredicate:predicate]; //不区分大小写匹配 NSString *match = @"imagexyz*.png"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF like[cd] %@", match]; NSArray *results = [directoryContents filteredArrayUsingPredicate:predicate]; //正则匹配 NSString *match = @"imagexyz-//d{3}//.png"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF matches %@", match]; NSArray *results = [directoryContents filteredArrayUsingPredicate:predicate];
iOS NSArray与NSPredicate实战
本文介绍了如何在iOS开发中使用NSArray与NSPredicate进行文件目录的内容过滤。通过多个实例展示了如何精确匹配、模糊匹配及正则表达式匹配文件名。
195

被折叠的 条评论
为什么被折叠?



