之前看"Effective Objective-C 2.0", 第4条, 多用静态变量, 少用define.
正好我的项目有些东西是静态变量, 之前java我习惯起一个类, 里面全都是public static String 什么的.
OC里面的做法跟C一样, 可以定义在自己的.m文件里面定义静态变量:
#import "BLEPackage.h"
...
#import "Tools.h"
int const UTF8_CODE_TRANS_START_PACKAGE_LENGTH=3;
int const UTF8_CODE_TRANS_END_PACKAGE_LENGTH=2;
@implementation BLEPackageFactory
...
@end
如果这些变量别人也要用, 那么就在这个类的.h文件里面加一行:
#import "BLEPackageType.h"
extern int const UTF8_CODE_TRANS_START_PACKAGE_LENGTH;
@interface BLEPackageFactory : NSObject
...
@end
这样, 别的类通过引用.h文件就能使用这个静态变量了.
这样做比define的好处是, 编译器会帮你检查变量类型, 避免后面使用的时候出错, 如果直接define编译器就不管你了.
所以要习惯使用这个const+extern来定义静态变量, 毕竟静态变量每个项目都会用到啊...
遗留问题, 都写在plist里面会不会太特么累?
另外, 书中强调, 最好使用带类名的前缀, 保证你的变量能被找到定义的位置. 是不是不要用java的方法, 用全大写?