我写了一些小宏来帮助设置应用程序范围的字体样式,颜色和渐变。问题是当我使用宏中定义的颜色或字体时,xcode会抛出警告。有没有办法让xcode验证宏,并希望得到代码提示?
#define HEX_COLOR(colorname, hexcolor) \
\
@implementation UIColor(Style##colorname) \
\
+ (UIColor*) colorname \
{ \
static UIColor * staticColor = nil; \
if(! staticColor) { \
float red = ((hexcolor & 0xFF0000) >> 16)/255.0; \
float green = ((hexcolor & 0xFF00) >> 8)/255.0; \
float blue = (hexcolor & 0xFF)/255.0; \
float alpha = (hexcolor >> 24)/255.0; \
\
staticColor = [[UIColor colorWithRed:red \
green:green \
blue:blue \
alpha:alpha] retain]; \
} \
return staticColor; \
} \
@end
在我的app委托中,我设置了应用程序范围的字体和颜色,如下所示:
HEX_COLOR(specialGreenColor, 0x66BAD455);
.....
此行会抛出该属性可能不存在的警告。
[[UIColor specialGreenColor] set];
此外,我不想减少xcode中的错误报告,因为没有看到警告是向后的步骤。我只是想找到一种方法来使用xcode对marco进行反应。
答案 0 :(得分:1)
如果要定义常量,则应使用#define
,如下所示:
#define COLOUR_NAME 0x66BAD455
然后,预处理器将浏览您的文件并将所有COLOUR_NAME
逐字的实例替换为0x66BAD455
。
可以说better ways可以定义应用程序范围的常量。
编辑:还有this nice post,似乎可以更好地实现您的目标。您可以定义宏,然后使用上面链接的问题定义颜色常量。
答案 1 :(得分:0)
marco的代码提示在xCode 4.2中工作