反对这一点的论点将基于风格。从功能上讲,它会像您期望的那样工作,并且存在的陷阱与您编写纯 C++ 代码时的陷阱相同......
你应该知道的怪癖:Objective-C 诸神的愤怒,以及任何了解 Objective-C 的上司。
我可以推荐 [CIColor colorWithString:(NSString *)],并将您的常量颜色存储为 NSString 作为 Objective-C 完成您希望完成的方式的方式。请注意,UIColor 类有一个 initWithCIColor 方法。您可以使用这行逻辑来创建 UIColors 的局部常量变量,并安抚 Objective-C 霸主。
像这样:
//.h
extern NSString *const COLOR_STRING;
//.m
NSString *const COLOR_STRING = @"SOME_COLOR";
@implementation ModalDelegate
- (id)init
{
CIColor *const MY_COLOR = [CIColor colorWithString:COLOR_STRING];//Can easily be made a UIColor instead, though unfortunately there is no "UIColor fromString" method.
self = [super init];
return self;
}