我无法想象在您自己的问题的“答案”中生成字符串如何image5image4image3image2image1.jpg
被string3
解释为有用或解决方案(我将您的代码粘贴到 Xcode Foundation 工具项目中,其中 NUMIMAGES 设置为 5)。
似乎 Objective C 跳过了一些障碍,使看似简单的任务变得异常困难。
阅读Objective-C 指南和字符串编程指南,然后得出你的结论。批评你不理解的东西通常会适得其反(尽管我们都做过——沮丧时很容易做到)。
我只需要创建一个字符串序列,image1.jpg、image2.jpg 等
天真的解决方案:
#define NUMIMAGES 5
NSMutableArray *fileNames = [NSMutableArray array];
for(int i = 0; i<5; i++)
[fileNames addObject: [NSString stringWithFormat: @"image%d.jpg", i]];
NSLog(@"fileNames %@", fileNames);
输出:
fileNames (
"image0.jpg",
"image1.jpg",
"image2.jpg",
"image3.jpg",
"image4.jpg"
)
请注意,天真的解决方案并没有什么特别的错误。它只是比必要的更脆弱,效率更低,代码更多。
一种可能的更好的解决方案
将所有图像作为资源添加到您的应用程序项目中。
使用 NSBundle API 一次抓取所有图像的 URL。
IE:
NSArray *paths = [[NSBundle mainBundle] pathsForResourcesOfType: @"jpg" inDirectory: nil];
这不仅从代码中删除了图像名称的硬编码,还允许系统优化目录枚举和路径生成。如果你只想加载图片的一个子集——假设你正在编写一个游戏并且有一系列与怪物相关的图片——然后将所有相关的图片放在一个目录中,将目录添加到你的资源中,然后传递目录的名称作为上述方法的第二个参数。
所有这些 - 以及更多 - 都记录在资源编程指南中。