Iphone iOS-返回与命名方案匹配的文件数

Iphone iOS-返回与命名方案匹配的文件数,iphone,ios,ipad,file,uiimage,Iphone,Ios,Ipad,File,Uiimage,有没有一种简单的方法可以返回符合集合命名方案的多个文件?试图使廉价和简单的图像序列播放器。我已经完成了繁重的工作,但目前必须将每个序列中的文件数传递给它,这很难更新 范例 图像1_000图像1_001图像2_000图像2_001图像2_002 因此,如果命名方案设置为Image2,它将返回3,如果命名方案设置为Image1,它将返回2 如果这些是NSArray中的NSString: int counter = 0; for (NSString *str in strArray) { if

有没有一种简单的方法可以返回符合集合命名方案的多个文件?试图使廉价和简单的图像序列播放器。我已经完成了繁重的工作,但目前必须将每个序列中的文件数传递给它,这很难更新

范例

图像1_000图像1_001图像2_000图像2_001图像2_002


因此,如果命名方案设置为Image2,它将返回3,如果命名方案设置为Image1,它将返回2

如果这些是NSArray中的NSString:

int counter = 0;
for (NSString *str in strArray) {
    if ([[[str componentsSeperatedByString:@"_"] objectAtIndex:0] isEqualToString:namingScheme]){
        counter++;
    }
}

NSPredicate
的帮助下,您可以很容易地实现这一点,在这里您可以定义类似正则表达式的语法。情况是这样的:

NSString *bundleRoot = [[NSBundle mainBundle] bundlePath];
NSArray *dirContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:bundleRoot error:nil];
NSArray *onlyImagesStartWithTwo = [dirContents filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self BEGINSWITH 'Image2_'"]];
NSArray*仅包含两个
的图像开始将包含所有以
Image2\uuu
开头的图像


希望这能有所帮助……

我不完全确定您的意思,但[[NSFileManager defaultManager]内容目录路径:]和一些NSRegularExpression进行匹配可能是答案。这似乎是我要遵循的最佳路径。它似乎有一个障碍,使用bundlePath会导致崩溃,尽管Xcode似乎能识别bundlePath。你能公布崩溃的原因吗?颠覆这一点的一种方法是,如果你确切地知道图像文件在哪里,比如Documents目录或caches目录等,那么你可以直接指定…它在“NSArray*dirContents”行上的“EXC_BAD_ACCESS”崩溃,此时bundleRoot正确地告诉我该.App在哪里。users/Me/Library/Application Support/iPhone Simulator/4.3.2/Applications//TheApp.App也会在ipad可能没有文件的同一点抛出错误。查看是否存在那些
image2.*
文件。因此,当at在
[dirContents filteredarrayingpredicate:[NSPredicate predicateWithFormat:@“self BEGINSWITH'Image2'”]崩溃时?奇怪。这是生产等级代码…正在工作。。。是一个格式不正确的count语句,它在下面几行出错,然后出现在那一行上。