gpt4 book ai didi

objective-c - 具有条件值的 Objective C 中的常量

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:09:00 27 4
gpt4 key购买 nike

我已经使用 advice in this question 在我的 Xcode 项目中设置了一些常量,它工作得很好。但是,现在我想根据它是 iPad 还是 iPhone 为其中两个常量设置不同的值。

这是我的 Constants.h 文件:

extern integer_t const kFontSize;
extern integer_t const kFontSizeMicro;

还有我的.m:

integer_t const kFontSize = 16;
integer_t const kFontSizeMicro = 11;

现在我想根据 .pch 文件中的 #define 宏设置更改这些值。但这不起作用:

if (IS_IPAD) {
integer_t const kFontSize = 25;
integer_t const kFontSizeMicro = 15;
}

我得到的错误是“预期标识符或 (”在“if”上。

有人知道在这种情况下如何允许条件语句吗?

最佳答案

C语言的if语句不能在函数体之外使用来控制这样的全局声明。您可以改用预处理器的 #if:

#if (IS_IPAD)
integer_t const kFontSize = 25;
integer_t const kFontSizeMicro = 15;
#else
integer_t const kFontSize = 20;
integer_t const kFontSizeMicro = 12;
#endif

不过,这与使用 #define-d 常量没有太大区别。如果你想让常量在运行时可设置,比如,在初始化期间,你需要从声明中删除 const,并将常规的 if 放入初始化函数 - 例如,application:didFinishLaunchingWithOptions:

关于objective-c - 具有条件值的 Objective C 中的常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13504104/

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