我有一个iPhone应用程序,其中包含一些自定义颜色的主题。由于这些颜色将为我的用户界面固定,因此我想定义要包含的类中的颜色(Constants.h和Constants.m)。我怎么做? (简单地定义它们是行不通的,因为UIColors是可变的,并且会导致错误 - Initalizer不是常量)。Objective C定义UIColor常量
/* Constants.h */
extern UIColor *test;
/* Constants.m */
UIColor *test = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0];
谢谢!
-1为第一句话 - 初始化是什么不是常数,而不是实例。对于所有的意图和目的,UIColor可以(或者明天可能)包含未暴露给用户的内部状态变量,使它们看起来对我们来说是恒定的,然而在Obj-C中没有任何东西强迫它。因此编译器无法使用静态初始化器,因为[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0]是一个方法调用,因此不能将结果放在文本段中,这是在编译时创建的。 – 2010-05-13 04:28:40
可变意味着您可以更改实例。不可变意味着你不能改变实例。常量意味着该实例无法更改。 UIColor不可变,也不是恒定的。只有CFString/NSString具有真正的常量实例,因为它们作为编译器语言的一部分专门处理。 – drawnonward 2010-05-13 15:32:45
那么你如何在你的代码中引用这种颜色? – scientiffic 2015-08-21 20:53:11