Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何筛选数组并使仅保留字符串以.png结尾_Ios_Objective C_Ios7_Ios8_Nsfilemanager - Fatal编程技术网

Ios 如何筛选数组并使仅保留字符串以.png结尾

Ios 如何筛选数组并使仅保留字符串以.png结尾,ios,objective-c,ios7,ios8,nsfilemanager,Ios,Objective C,Ios7,Ios8,Nsfilemanager,我正在从文件夹中读取文件,文件夹包含.pngs,但我在每个文件夹中都会得到Thumb.db文件,其他所有文件夹都是.pngs。我读的内容是 NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL]; 如何删除数组中包含.db的所有文件,或仅保留以.png结尾的文件?请尝试以下代码: NSArray *directoryContent = [

我正在从文件夹中读取文件,文件夹包含
.pngs
,但我在每个文件夹中都会得到
Thumb.db
文件,其他所有文件夹都是.pngs。我读的内容是

NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL];
如何删除数组中包含
.db
的所有文件,或仅保留以
.png
结尾的文件?

请尝试以下代码:

    NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL];
    NSMutableArray *imageArray = [[NSMutableArray alloc] init];

    for (NSString *path in directoryContent) 
    {
       if ([path hasSuffix:@".png"]) 
       {
          [imageArray addObject: path];
       }
    }

    NSLog (@"Number of images : %d" , [imageArray count]);

Cocoa中过滤数组的惯用方法是:


谓词中提到的方法是
NSString
上的一个方法,它试图将字符串解释为文件系统路径,并返回扩展名。

我认为使用NSPredicate方法可以获得精确的值

NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL];
NSString *str              = @".png"
NSPredicate *sPredicate    = [NSPredicate predicateWithFormat:@"SELF contains[c] %@",str];
NSArray *predicateArray    = [directoryContent filteredArrayUsingPredicate:sPredicate];

这是一个相对简单的任务,在循环中有一个
for。你尝试过什么?NSPredicate的可能副本是一个更简单的解决方案是的,即使我之前不知道。
NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL];
NSString *str              = @".png"
NSPredicate *sPredicate    = [NSPredicate predicateWithFormat:@"SELF contains[c] %@",str];
NSArray *predicateArray    = [directoryContent filteredArrayUsingPredicate:sPredicate];