gpt4 book ai didi

objective-c - iPhone项目常数

转载 作者:行者123 更新时间:2023-12-03 20:22:36 25 4
gpt4 key购买 nike

我希望我的项目中有一个常量可以在 Lite 和 Pro 版本之间切换。我不认为这是最好的方法,但我正在尝试:

  1. 在我的应用程序委托(delegate)中添加一个常量

    #define BUILD_PRO 1 //0 => LITE, 1 => PRO
  2. 当我需要它时,我导入 appDelegate 并测试它:

    #import "myAppDelegate.h"

    然后稍后

    #if (BUILD_PRO==1)
    NSLog(@"this is pro version");
    #endif

问题是此代码在某些文件中有效,但在其他文件中无效。我还没有找到这种行为的任何解释;有人能解释一下吗?

从同一项目获得两个版本(专业版和精简版)的正确方法是什么?

最佳答案

是的。预处理器定义就是实现这一点的方法。

我想它在某些文件中起作用,而在其他文件中不起作用,因为有些文件可能不包含您的 myAppDelegate.h 文件,因此无法获取定义。我建议定义“Lite Version”和“Pro Version”目标,并在每个目标的构建配置中设置预处理器变量。

创建精简版目标后(只需选择“专业版”目标上的重复目标上下文菜单项即可创建精简版目标):

  • 进入项目/编辑目标“专业版本”菜单项
  • 转到“构建”选项卡并找到“预处理”部分(朝向底部)。
  • 将 BUILD_PRO=1 添加到“预处理宏”部分。

这样您就不必更改任何头文件,您只需要构建精简版或完整目标。如果您需要在产品中的任何位置添加专业功能,只需使用:

#ifdef BUILD_PRO
// do some pro stuff
#endif

关于objective-c - iPhone项目常数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2052943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com