Objective-C: how to group a series of string constants?
ios, nsstring, objective-c
Solution
Here's one approach:
MONExtResult.h
// add __unsafe_unretained if compiling for ARC
struct MONExtResultStruct {
NSString * const AppID;
NSString * const ErrorCode;
NSString * const Progress;
};
extern const struct MONExtResultStruct MONExtResult;
MONExtResult.m
const struct MONExtResultStruct MONExtResult = {
.AppID = @"appid",
.ErrorCode = @"errorcode",
.Progress = @"progress"
};
In use:
NSString * str = MONExtResult.AppID;
Problem
I defined a series of string constants like below, in macro way, ``` #define EXT_RESULT_APPID @"appid" #define EXT_RESULT_ERROR_CODE @"errorcode" #define EXT_RESULT_PROGRESS @"progress" ... ``` All these constants are supposed to be used in same context, so I'd like to constraint them in a same namespace, and I don't want to make them global, just like what this post said. In the other hand, I could put all numeric constants in an enum but it doesn't work for strings. Then how could I group these related string constants?