【问题标题】:#define macros and xcode warning and lack of code hinting#define 宏和 xcode 警告和缺少代码提示
【发布时间】:2011-09-20 11:53:20
【问题描述】:

我编写了一些小宏来帮助设置应用程序范围的字体样式、颜色和渐变。问题是每当我使用宏中定义的颜色或字体时,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

在我的应用程序委托中,我设置了应用程序范围的字体和颜色,如下所示:

HEX_COLOR(specialGreenColor, 0x66BAD455);
.....

此行会引发该属性可能不存在的警告。

[[UIColor specialGreenColor] set];

另外,我不想减少 xcode 中的错误报告,因为没有看到警告是倒退。我只是想找到一种用xcode注册marco的方法。

【问题讨论】:

    标签: objective-c ios xcode macros categories


    【解决方案1】:

    如果你想定义常量,你应该像这样使用#define

    #define COLOUR_NAME 0x66BAD455
    

    然后,预处理器将检查您的文件并将COLOUR_NAME的所有实例逐字替换为0x66BAD455

    可以说有 better ways 来定义应用程序范围的常量。

    编辑:还有this nice post 似乎可以更好地实现您的目标。您可以定义宏,然后使用上面链接的问题定义颜色常量。

    【讨论】:

      【解决方案2】:

      marco 的代码提示在 xCode 4.2 中工作

      【讨论】:

        猜你喜欢
        • 2014-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-16
        相关资源
        最近更新 更多