My preferred approach to creation and maintaing global variables/ constants is by singletons and singleton instance[s]. Not only is an elegant method that adds compliance to a very important Cocoa design pattern, but also provides you a lot of flexibility.
Moreover — using singletons — your code won’t get cluttered and managing globals will be much easier.
For example, consider a class [ala_crossref]Globals[/ala_crossref], that I created to maintain global variables in one of my past Cocoa Touch projects:
@interface Globals : NSObject { NSString *attributeKey; } + (Globals *)sharedInstance; - (NSString *)getAttributeKey; - (void)setAttributeKey:(NSString *)attrK;
And implementation:
#import "Globals.h" @implementation Globals static Globals *_sharedInstance; - (id)init { if (self = [super init]) { attributeKey = @""; } return self; } + (Globals *)sharedInstance { if (!_sharedInstance) { _sharedInstance = [[Globals alloc] init]; } return _sharedInstance; } - (NSString *)getAttributeKey { return attributeKey; } - (void)setAttributeKey:(NSString *)attrK { attributeKey = attrK; }
Leave a Reply