在应用程序中的所有图像中创建数组?

时间:2011-12-10 01:36:55

标签: ios arrays image bundle

是否可以在我的应用程序中创建所有.png,.jpg和.jpeg中的NSArray?我知道可以将它做到某种类型,例如只有.pngs,但我不知道如何对我的应用程序中的所有图像执行此操作。

我宁愿没有很多条件,所以我怎么能这么做呢?

谢谢!

EDIT1:

// Do any additional setup after loading the view, typically from a nib.
NSString * pathToImages = [NSString stringWithFormat: @"%@/images", [[NSBundle mainBundle] resourcePath]];
NSFileManager *localFileManager= [[[NSFileManager alloc] init] autorelease];
NSDirectoryEnumerator *dirEnum = [localFileManager enumeratorAtPath:pathToImages];
NSString *file;
NSLog(@"level1");
while (file = [dirEnum nextObject]) {
    NSLog(@"level2");
    if(file)
    {
        NSLog(@"level3");
        [imagesArray addObject:file];
    }
}

1 个答案:

答案 0 :(得分:1)

取决于您希望如何在阵列中存储图像。您想要文件引用还是实际的UIImage对象?

无论如何......如果您将所有图像保存在应用程序资源目录中的“images”文件夹中,为什么不尝试以下内容:

NSString * pathToImages = [NSString stringWithFormat: @"%@/images", [[NSBundle mainBundle] resourcePath]];
NSFileManager *localFileManager= [[NSFileManager alloc] init];
NSDirectoryEnumerator *dirEnum = [localFileManager enumeratorAtPath:docsDir];
NSMutableArray * arrayOfImages = [[NSMutableArray alloc] initWithCapacity: 1];
NSString *file;
while (file = [dirEnum nextObject]) {
    // let's assume that all objects in here are valid images
    UIImage * newImage = [UIImage imageWithContentsOfFile: file];
    if(newImage)
    {
        [arrayOfImages addObject: newImage];
    }
}

顺便说一句......如果您要加载大量图片(特别是高版本的图片),您可能会在视图控制器中点击didReceiveMemoryWarning个来电。