如何更改#define 值

How to change #define value

我知道 #define 必须是恒定的,但请给我任何好的提示。

在我的例子中,我通过 #define 定义了一个常量值(例如 #define kImageQuality 0.7)。 但是,我想在打开应用程序之前更改 Settings.Bundle 中的常量值。 这意味着改变常数值,不是吗? 有什么方法可以实现我的目标吗?

它应该改为实例变量而不是#define? 如果您提供任何提示,我们将不胜感激。

#define 常量甚至在编译开始之前就被预处理器替换了(例如,kImageQuality 在编译之前被 0.7 替换)。因此,在应用程序启动之前加载它是不可能的,因为应用程序不会每次都重新编译。您需要使用一个变量:

float imageQuality = 0.7f;

这是不可能的,因为:

#define constant 3
...
y = x + constant

是否完全相当于:

y = x + 3

#defined 常量在代码编译之前的预处理阶段被替换为它们的值。要动态更改值,您必须使用全局变量或其他一些持久机制,如 NSUserDefaults.