是否可以在我的应用程序中创建所有.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];
}
}
答案 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
个来电。