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

前端 未结 6 918
旧巷少年郎
旧巷少年郎 2020-11-29 01:42

The following code is giving me errors:

//  constants.h
extern NSArray const *testArray;
//  constants.m
NSArray const *testArray =          


        
6条回答
  •  佛祖请我去吃肉
    2020-11-29 02:22

    Here's a macro to do it in one line for a static instance in a method scope.

    #define STATIC_ARRAY(x, ...)   \
            static NSArray* x=nil; \
            static dispatch_once_t x##onceToken; \
            dispatch_once(&x##onceToken, ^{ x = @[ __VA_ARGS__ ]; });
    

    Use example

        STATIC_ARRAY(foo, @"thing1", @"thing2", [NSObject new]);
    

提交回复
热议问题