I’m trying to instanciate a constant NSString by concatanating other NSString instances.
Here is what I’m doing in my implementation file :
static NSString *const MY_CONST = @"TEST";
static NSString *const MY_CONCATENATE_CONST = [NSString stringWithFormat:@"STRING %@", MY_CONST];
It leads to the following compilation error : Initializer element is not constant
I suppose this is because stringWithFormat doesn’t return a constant NSString, but since there is no other way to concatenate strings in Obj-C, what am I supposed to do ?
Thanks for your help,
Eric.
I think you need to step back and think about if the string needs to be defined as a const.
Clearly the string isn’t a constant since you are trying to assign a new value to it – and that is not possible since you specifically instructed the compiler to make sure the value wasn’t changed by using the const keyword.
If the string resides as a property in a class you could make it a read-only property – i.e. accessor method but no setter method. You would then be able to construct your string as you wish in the class internally while keeping the callers from changing the value.