Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 应用程序资源的iPhone通用捆绑包_Objective C_Iphone_C Preprocessor_Bundle_Target - Fatal编程技术网

Objective c 应用程序资源的iPhone通用捆绑包

Objective c 应用程序资源的iPhone通用捆绑包,objective-c,iphone,c-preprocessor,bundle,target,Objective C,Iphone,C Preprocessor,Bundle,Target,我们已经开发了一个iPhone应用程序,它有两种不同的功能,并且在两个项目的某些区域使用相同的图像和字符串。在这里,我使用的预处理器宏在编译时对其进行区分,例如projectone和projecttwo 这里我的问题是,是否有任何方法以通用方式传递图像和字符串。我的意思是,如果我为project one执行应用程序,意味着它应该只获取相关应用程序的图像和字符串,而不应该与另一个项目捆绑在一起,即project II的源代码 任何想法和建议都将不胜感激。请看一个有两个目标的项目的屏幕截图: 在文

我们已经开发了一个iPhone应用程序,它有两种不同的功能,并且在两个项目的某些区域使用相同的图像和字符串。在这里,我使用的预处理器宏在编译时对其进行区分,例如projectone和projecttwo

这里我的问题是,是否有任何方法以通用方式传递图像和字符串。我的意思是,如果我为project one执行应用程序,意味着它应该只获取相关应用程序的图像和字符串,而不应该与另一个项目捆绑在一起,即project II的源代码


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

请看一个有两个目标的项目的屏幕截图:

在文件夹结构中:

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

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

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

嘿,非常感谢你的回答,我还有一个问题,比如有没有办法根据目标来分离项目中的字符串和代码,比如类似于图像?还有,我可以为两个不同的项目使用静态图像库和字符串库?1)您可以使用相同的方法来组织代码和其他资源。2) 不幸的是,您不能将资源打包到静态库中,但是有许多教程介绍如何创建一个可以实现这一点的库。