나는 일반적으로 Barry Wark와 Rahul Gupta가 게시 한 방식을 사용하고 있습니다.
.h와 .m 파일에서 동일한 단어를 반복하는 것을 좋아하지는 않습니다. 다음 예제에서 줄은 두 파일에서 거의 동일합니다.
// file.h
extern NSString* const MyConst;
//file.m
NSString* const MyConst = @"Lorem ipsum";
따라서 내가 좋아하는 것은 C 전 처리기 기계를 사용하는 것입니다. 예제를 통해 설명하겠습니다.
매크로를 정의하는 헤더 파일이 있습니다 STR_CONST(name, value)
.
// StringConsts.h
#ifdef SYNTHESIZE_CONSTS
# define STR_CONST(name, value) NSString* const name = @ value
#else
# define STR_CONST(name, value) extern NSString* const name
#endif
상수를 정의하려는 내 .h / .m 쌍에서 다음을 수행합니다.
// myfile.h
#import <StringConsts.h>
STR_CONST(MyConst, "Lorem Ipsum");
STR_CONST(MyOtherConst, "Hello world");
// myfile.m
#define SYNTHESIZE_CONSTS
#import "myfile.h"
et voila, 상수에 대한 모든 정보는 .h 파일에만 있습니다.