我想知道我是否创建了一个充满文件的组或文件夹,例如图片,例如img1.jpg,img1 @ 2x.jpg,img2.jpg,img2 @ 2x.jpg ... img10.jpg,img10 @ 2x.jpg,有没有办法动态创建所有这些图像的数组而不知道有多少图像?基本上,我想要一些动态的东西,所以如果我添加更多而不必更新我的代码,它将找到所有新的图像。可以这样做吗?
感谢您的帮助......
答案 0 :(得分:1)
不,不幸的是XCode没有这个功能,但是如果你愿意手动增加一个常量,你可以轻松地进行一些字符串操作来获得一个数组:
#define IMAGE_COUNT 10
#define PREFIX @"img"
NSMutableArray *images, *images2x;
images = [NSMutableArray arrayWithCapacity:IMAGE_COUNT];
images2x = [NSMutableArray arrayWithCapacity:IMAGE_COUNT];
for(int i = 0; i < IMAGE_COUNT; i++){
NSString *imagePath = [PREFIX stringByAppendingFormat:@"%d.jpg",i];
NSString *image2xPath = [PREFIX stringByAppendingFormat:@"%d@2x.jpg",i];
[images addObject:[UIImage imageNamed:imagePath]];
[images2x addObject:[UIImage imageNamed:image2xPath]];
}
您手动添加文件并且它们都已编号,因此每次添加图像时只需更改IMAGE_COUNT即可。
答案 1 :(得分:0)
要使xCode自动检测新图像,您需要添加包含这些图像的文件夹“作为参考”。单击并将图像文件夹拖动到xCode时,将弹出一个导入窗口。其中一个径向按钮将具有“添加为参考”选项。选择那个,文件夹将自动更新您添加到其中的任何内容。您可能必须清理并重建项目,以便xCode实际将这些更新发送到您的应用程序。
要在你的应用程序(代码中)中执行此操作,您可以执行以下操作:
NSError *error;
NSArray *fileList = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:yourFolderPath error:&error];
这将为您提供一系列NSStrings,其中包含所选文件夹中所有文件和文件夹的名称。如果你也需要子文件夹,那么你将不得不进行递归调用。