我有一个constants.h文件,它声明了我在整个应用程序中使用的一串字符串。我只有字符串,没有别的。我应该使用#define还是静态NSString const? #define有效,但我听说它不是最佳做法。
答案 0 :(得分:32)
#define
是预处理器宏。这意味着它基本上会遍历您的代码并将您的宏替换为您定义的内容。
如果使用const,它将成为指向内存中字符串的指针。它比在任何地方/使用它时分配相同的字符串更有效。
要做到这一点,你需要.h和.m文件。你的.h文件看起来像:
extern NSString * const YOUR_STRING;
你的.m文件:
NSString * const YOUR_STRING = @"your string";