I’m attempting to create an NSArray with a grouping of string literals, however I get the compile error “Initializer element is not constant”.
NSArray *currencies = [NSArray arrayWithObjects:@"Dollar", @"Euro", @"Pound", nil];
Could someone point out what I’m doing wrong, and possibly explain the error message?
This isn’t a problem with the NSArray creation itself (you would get the same error if you wrote
[NSArray array]instead), but with where you’ve written it. I’m guessing this is a global or file-static NSArray. In C, that kind of variable has to have a constant initializer — meaning not a function call (or, by extension, a method call). The solution is to put the actual creation and assignment of the array into a method that will be called before you need the array, such asinitialize.