我在不同类中使用的服务器 URL 和常量数字(如颜色、大小和几乎任何需要轻松更改的配置)中遇到了同样的问题。我找到的最佳解决方案是创建一个像 Constants.h 这样的头文件,这个头文件的内容是:
#define MAX_DIST 1000
#define MIN_DIST 300
#define ANIMATION_DURATION 0.010
#define PIXEL_MOVES 7
#define SENSITIVITY 14
#define VIEW_ANGLE 30 //Range of vision divided by 2
#define RAD_POS_X 415
#define RAD_POS_Y 15
#define BUTTON_VIEW_WIDTH PIXEL_MOVES*360
#define SCREEN_HEIGHT 480
#define BUTTON_WIDTH_CLOSE 180
#define BUTTON_HEIGHT_CLOSE 100
#define BUTTON_WIDTH_MEDIUM 100
#define BUTTON_HEIGHT_MEDIUM 60
#define BUTTON_WIDTH_FAR 60
#define BUTTON_HEIGHT_FAR 40
#define BUTTON_Y_POSITION_CLOSE 200
#define BUTTON_Y_POSITION_MEDIUM 135
#define BUTTON_Y_POSITION_FAR 90
#define SERVICE_URL @"http://my.server.com/SoapServer/SoapServiceWS"//
您甚至可以定义常用功能,例如
#define DEGREES_TO_RADIANS(__ANGLE__) ((__ANGLE__) / 180.0 * M_PI)
通过这种方式,我能够从一个文件配置我的应用程序的各个方面,并且您可以像您说的那样使用#ifdef 来管理不同的编译。当然,您必须在需要访问这些常量的任何类中导入文件 Constants.h。