我正在尝试使用资源中的图像集合填充 NSArray。但是,为了获得最大的灵 active ,我试图避免对文件名甚至有多少个文件进行硬编码。
通常,我会从苹果的示例代码中执行类似以下操作:
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。有没有办法在资源上运行正则表达式或其他东西?
最佳答案
这是一个从我的 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:参数。
关于iphone - 如何在 iPhone 应用程序中枚举和加载资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/513480/