【问题标题】:iPhone Generic bundle for application resources用于应用程序资源的 iPhone 通用捆绑包
【发布时间】:2012-03-27 14:16:17
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    在文件夹结构中:

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

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

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

    【讨论】:

    • Hey Sch 非常感谢您的回复,并有另一个问题,例如有没有办法根据类似于图像的目标来分离项目中的字符串和代码...?
    • 我是否可以将静态库用于两个不同项目的图像和字符串?
    • 1) 您可以使用相同的方法来组织您的代码和其他资源。 2) 不幸的是,您不能将资源打包到静态库中,但是有很多教程介绍了如何创建universal framework,您可以在其中做到这一点。
    猜你喜欢
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多