我正在尝试编写一种方法,该方法采用诸如0xD2691E
之类的十六进制值以返回UIColor对象。
我想将found this macro转换为方法,但是除了void *
,我不知道如何指定数据类型。
#define UIColorFromRGB(rgbValue) [UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
//Then use any Hex value
self.view.backgroundColor = UIColorFromRGB(0xD2691E);
最佳答案
根据C标准,十六进制常量的类型是该列表中可以表示其值的第一个:
由于D2691E
(b16)等于13789470
(b10),因此常量的类型取决于您的实现。
C标准仅保证INT_MAX >= +32767
,而LONG_MAX >= +2147483647
。
因此,(unsigned) long int
可能是一个合适的选择。