如何在iPhone应用程序中枚举和加载资源?

Sam*_*Sam 2 iphone cocoa-touch

我正在尝试使用参考资料中的一组图像填充NSArray.但是,为了获得最大的灵活性,我试图避免对文件名进行硬编码,甚至避免使用多少文件.

通常,我会在apple的示例代码中执行类似这样的示例:

kNumImages = 5;  //or whatever
NSMutableArray *images;
for (i = 1; i <= kNumImages; i++)
{
    NSString *imageName = [NSString stringWithFormat:@"image%d.jpg", i];
    [images addObject:[UIImage imageNamed:imageName];
}
Run Code Online (Sandbox Code Playgroud)

但是,我试图完全避免使用kNumImages.有没有办法在资源上运行正则表达式?

Ale*_*yne 11

这是一个从我的iPhone应用程序中执行此操作的片段

// Load item icons  
paths = [[NSBundle mainBundle] pathsForResourcesOfType:@"png" inDirectory:nil];
for (NSString *filename in paths) {
  filename = [[filename componentsSeparatedByString:@"/"] lastObject];
  if ([filename hasPrefix:@"ItemIcon"]) {
    [UIImage imageNamed:filename];
  }
}
Run Code Online (Sandbox Code Playgroud)

它遍历所有具有png扩展名的资源,文件名以"ItemIcon"开头,然后加载到UIImage的内置缓存中.

如果将它们放在特定目录中,则需要指定indirectory:参数.