#define предупреждение о макросах и xcode и отсутствие подсказок по коду - PullRequest
0 голосов
/ 20 сентября 2011

Я написал несколько небольших макросов, чтобы помочь в настройке стилей шрифта, цветов и градиентов для всего приложения.Проблема в том, что 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.

Ответы [ 2 ]

1 голос
/ 20 сентября 2011

Если вы хотите определить константы, вы должны использовать #define примерно так:

#define COLOUR_NAME 0x66BAD455

Затем препроцессор проверит ваш файл и заменит все экземпляры COLOUR_NAME дословно на 0x66BAD455.

Возможно, существует лучший способ для определения констант всего приложения.

Редактировать: есть также этот хороший пост , который, кажется, обеспечивает лучшую реализацию того, что вы собираетесь. Вы можете определить макрос, а затем определить свои цветовые константы, используя вопрос, связанный выше.

0 голосов
/ 28 декабря 2011

Подсказка по коду для марко работ в xCode 4.2

...