Recently I was working on a legacy project written in Objective-C, which reminded me of the early days when working on Objective-C projects.
In the code I saw few things like the following which defines a constant:
#define car_price 300
#define creates a macro which simply do the replacement for the compiler. In the above code, compiler doesn't know the type of the
card_height. It must be converted to a float value when using. So it is not type-safe.
Instead of using a macro to define a constant, it is a better way to use
const to define a constant as it is type-safe and easier to debug.
static float const kCarPrice = 300.0f;
Also we can use
const to define other types of constants too.
static NSString* const kCarModel = @"Lexus IS 200T";
static in const KCarType = 1;
Noticed that const can only used before immutable variables. So the following two statements are the same, both
kCarModel2 are immutable, even if they have the type of
static NSString* const kCarModel1 = @"Lexus IS 200T";
static NSMutableString* const kCarModel2 = @"Lexus IS 200T";