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

时间:2009-02-04 21:36:12

标签: 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];
}

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

1 个答案:

答案 0 :(得分: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];
  }
}

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

如果您将它们放在特定目录中,则需要指定indirectory:argument。