Search code examples
objective-ccocoa-touchcocoaextern

External Constants for UIColor, UIFont, etc


I have a constants.m file that is a centralized collection of many program constants. To set a color, I do this:

@implementation UIColor (UIColor_Constants) 

+(UIColor *) defaultResultTableBackgroundColor{
    //return [[UIColor colorWithRed:0.6f green:0.004f blue:0.0f alpha:1.0f] retain];
    return [[UIColor colorWithRed:0.1f green:0.004f blue:0.3f alpha:0.3f] retain];
}

+(UIColor *) defaultResultHeaderBackgroundColor{
    return [[UIColor clearColor] retain];
}

@end

and in the constants.h I have

@interface UIColor (UIColor_Constants) 

+(UIColor *) defaultResultTableBackgroundColor;
+(UIColor *) defaultResultHeaderBackgroundColor;

@end

and then just use [UIColor defaultResultTableBackgroundColor] where I want to refer to this constant.

I would like to have some other UIColor and UIFont constants, and, while this works, it seems to be more complicated than it needs to be. Is there an easier way to do this?


Solution

  • I actually like this way too. One question: why do you retain the uicolor? This is very dangerous. It's very likely to make a mistake and to create a memory leak.