用于应用程序资源的iPhone Generic包

时间:2012-03-27 14:16:17

标签: objective-c iphone c-preprocessor bundle target

开发了一款iPhone应用程序,它具有两种不同的功能,并且在项目的某些区域使用相同的图像和字符串。在这里,我使用的是预处理器宏,它们在编译期间区分它,例如项目一和项目二。

这里我的问题是有没有办法以通用的方式传递图像和字符串。我的意思是,如果我执行项目的应用程序一意味着它应该只采取相关的应用程序的图像和字符串它不应该与另一个项目捆绑,即项目二的来源。

任何想法和建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

查看包含两个目标的项目的屏幕截图:

enter image description here

在文件夹结构处:

enter image description here

您可以将共享资源放在Shared文件夹中,并将其添加到示例中的SharedImage.png这两个目标中。对于具有两个不同版本的资产,您可以将每个版本放在相应的文件夹(Target ATarget B)上,并对两个版本使用相同的名称。例如,将图片MyImage.png添加到Target A时,您只需选中Target A框,如下面的屏幕截图所示:

enter image description here

现在,可以轻松地为每个目标使用正确的资产,而无需使用预处理器宏。例如,以下代码将使用MyImage.png的正确版本,无论它是Target A还是Target B

UIImage *image = [UIImage imageNamed:@"MyImage.png"];