引用Xcode中组或文件夹中的所有文件

时间:2014-02-05 20:13:22

标签: ios xcode

我想知道我是否创建了一个充满文件的组或文件夹,例如图片,例如img1.jpg,img1 @ 2x.jpg,img2.jpg,img2 @ 2x.jpg ... img10.jpg,img10 @ 2x.jpg,有没有办法动态创建所有这些图像的数组而不知道有多少图像?基本上,我想要一些动态的东西,所以如果我添加更多而不必更新我的代码,它将找到所有新的图像。可以这样做吗?

感谢您的帮助......

2 个答案:

答案 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,其中包含所选文件夹中所有文件和文件夹的名称。如果你也需要子文件夹,那么你将不得不进行递归调用。