在IOS开发中,有时候需要批量加载一个文件夹的所有资源,这时候会用到
NSArray *ary = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:[[NSBundle mainBundle] pathForResource:@"folderName" ofType:nil] error:nil];
这个可以获得所有的文件夹下的文件名数组,如果是一堆图片时,可能你会粗心的这样调用
for(NSString *imageName in ary)
{
UIImage *image = [[UIImage alloc] imageName:imageName];
//对IMAGE进行操作,运行后模拟器上会显示出来图片,但是真机上就不行了
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[view addSubView:imageView];
}
正确的操作应该是这样的:
NSString *path = [[NSBundle mainBundle] resourcePath];
path = [path stringByAppendingPathComponent:@"folderName"];
path = [path stringByAppendingPathComponent:[ary objectAtIndex:i]];
UIImage *image = [UIImage imageWithContentsOfFile:path];
//这时候真机上就没问题了
这种读取文件的低级错误有时候会让人头痛老半天,希望不会有和俺一样的朋友犯这样的错误,呵呵...