If I declare a string constant like so:
You should create a header file like
// Constants.h
extern NSString * const MyFirstConstant;
extern NSString * const MySecondConstant;
//etc.
You can include this file in each file that uses the constants or in the pre-compiled header for the project.
You define these constants in a .m file like
// Constants.m
NSString * const MyFirstConstant = @"FirstConstant";
NSString * const MySecondConstant = @"SecondConstant";
What do I do to define integer constants?
Thanks,
Dan
From stackoverflow
-
Replace NSString* with NSInteger.
This is true of any constant type, be it a primitive such as int/float, or a class such as NSString or NSInteger.
The only thing to be aware of is whether you desire a constant or a pointer to a constant (such as withNSString), and how it's initialized in the .m file
Integer example:
// constants.h extern NSInteger const MyIntegerConstant; // constants.m NSInteger const MyIntegerConstant = 666;
(Note: for the reason why NSInteger instead of just regular "int", see this post)
Class example:
// constants.h extern MyClass* const MyClassConstant; // constants.m MyClass* const MyClassConstant= [[MyClass alloc] initWith: paramOne and:paramTwo];
Dan Morgan : Thanks andrew - Were would this class be deallocated?Andrew Grant : It wouldn't be, it's memory would be cleaned up when the program exits. If you wish to have manual control over this you can add initializeConsts / releaseConsts functions to the beginning/end of your programDan Morgan : Thanks andy - I'm using the above code in my add and I'm getting the compile error in my Switch statements: "MyIntegerConstant" does not equate to an integerAndrew Grant : Post the code in a separate question!
0 comments:
Post a Comment