我正在尝试使用参考资料中的一组图像填充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。有没有办法在资源上运行正则表达式?
答案 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。