How do I declare an array as a constant in Objective-c?

In short, you can’t. Objective-C objects are, with the exception of NSString, only ever created at runtime. Thus, you can’t use an expression to initialize them.

There are a handful of approaches.

(1) Declare NSArray *testArray without the const keyword and then have a bit of code that sets up the value that is invoked very early during application lifecycle.

(2) Declare a convenient class method that returns the array, then use a static NSArray *myArray within that method and treat it as a singleton (search SO for “objective-c singleton” for about a zillion answers on how to instantiate).

Leave a Comment