Objective-C的宏我有顏色設置字典和嘗試這樣做:類消息
#define ColorWithString(x) [UIColor #x]
NSDictionary *settings = @{@"color" : @"whiteColor"};
UIColor *color = ColorWithString(settings[@"color"]);
我得到一個錯誤Expected identifier
。
我知道字符串預處理有一些微妙之處。也許甚至無法向課堂發送動態消息。任何建議,使這項工作?
非常好的建議得到
CGColorRef
。我有一個具有多種顏色的配置plist,其中許多被定義爲'UIColor'上的方便類別,例如'[UIColor goldColor]'或'[UIColor colorWithHex:@「#00AA00」]'等等,所以這是還沒有完全正常工作...... – Mundi如果我有外部配置文件中的顏色,我想我會選擇存儲十六進制值並解析它們,因爲將配置值直接轉換爲選擇器名稱聽起來有點麻煩。如果你不介意,我想你可以採用我在答案中提出的'NSSelectorFromString'方式。 – zoul
想想完全按照這種方式來做(十六進制值)。感謝您的輸入。 – Mundi