我想在Objective-C中定义一个常量。
之前我有以下函数:
+(NSString *) getDocumentsDir {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex: 0];
paths = nil;
return documentsDir;
}
我想定义一个常量"Documents_Dir",只需要在函数被调用时定义一次,并在此后访问以前创建的值。
我尝试了以下代码,但没有成功:
#define getDocumentsDir \
{ \
#ifdef Documents_Dir \
return Documents_Dir; \
#else \
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES); \
NSString *documentsDir = [paths objectAtIndex: 0]; \
#define Documents_Dir [paths objectAtIndex: 0]; \
paths = nil; \
return Documents_Dir; \
#endif \
} \
我对编译预处理指令不太熟悉,所以希望能得到帮助。
if (documentsDir == nil)
,因为initialize
只会被调用一次。 - skywinder