【问题标题】:Is it possible to pass arguments to a framework/library?是否可以将参数传递给框架/库?
【发布时间】:2012-10-10 01:13:32
【问题描述】:

在我的项目中,我在处理多个目标时使用不同的标志来运行不同的代码。类似的东西

#ifdef MY_FLAG
//do this
#else
//do this other
#endif

现在我正在将一些代码带到外部库中,但我不想为每个标志编译不同版本的库,所以问题是:

有没有办法传递参数之类的东西,从外部告诉库(或框架)哪些代码应该以“全局”方式运行?

【问题讨论】:

    标签: objective-c ios xcode frameworks libraries


    【解决方案1】:

    您对#ifdef 所做的是确定编译器可以看到哪些代码。因此,您将不得不为每个标志编译不同的版本,因为库已链接但已经编译。我想问题更多的是你如何处理磁盘上的那些。

    您可以将多个 CPU 架构存储到一个静态库中。因此,任何仅与您的目标是 ARMv7、ARMv7s 还是 i386 有关的标志都可以使用单个库来处理。

    对于其他人,您可能必须生成不同的库。然而,这只是磁盘占用空间的形状问题——您可以使用链接到库的任何项目的项目设置,以便根据构建配置链接到不同版本的库。

    【讨论】:

      【解决方案2】:

      一种选择是让框架提供框架用户可以调用的某种初始化方法或函数。这将告诉框架它应该在什么“模式”下运行。框架的客户端可以在应用启动时调用它。

      【讨论】:

        猜你喜欢
        • 2021-11-11
        • 1970-01-01
        • 2011-04-22
        • 2020-09-14
        • 2012-12-26
        • 1970-01-01
        • 1970-01-01
        • 2017-07-08
        • 1970-01-01
        相关资源
        最近更新 更多