ios - 在应用程序运行时更改 util 类中的#define

标签 ios objective-c c-preprocessor

假设宏是一个可以从任何 View 访问的自定义实用程序类。

如何在应用程序运行时更改#define APP_THEME_COLOR? (例如,用户可以更改此颜色)

//
//  Macros.h
//

#import <Foundation/Foundation.h>

//App Specific

#define APP_THEME_COLOR [[UIColor alloc] initWithRed:0.0 / 255 green:0.0 / 255 blue:0.0 / 255 alpha:0.9]

(作为一个附带问题,您认为在应用程序中实现此类功能的最佳方式是什么?,我对 #define 感到不舒服)

最佳答案

您无法在运行时更改#defined 的内容,因为这些声明甚至在编译发生之前就已被评估。

您可以在您的应用委托(delegate)中定义一个颜色变量,并在它发生变化时通知您的 UI 组件。

查看此 NSHipster article关于如何实现这一目标。

关于ios - 在应用程序运行时更改 util 类中的#define,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26382046/

相关文章:

ios - 本地化不适用于 Xcode

objective-c - 合并两个 RACSignals,在第一次完成时完成

c - 如何使用预处理器指令检查操作系统?

ios - 缩小自定义 UITableViewCell 中的自定义 textLabel 和 detailTextLabel

ios - react native 按钮单击移动到另一个屏幕

ios - 从本地通知打开应用程序后动画标签 [Swift 3.0 - Xcode 8]

ios - 使用 NSMutableArray 中对象的元素设置 cell.backgroundColor

c - 预处理 token : '- -' vs. '--'

C++ 断言 : the precedence of the expression in an assert macro

ios - uicontainerview(容器 View )内的多个 subview Controller