iOS #define或全局字符串的静态const

时间:2013-08-17 00:42:04

标签: ios

我有一个constants.h文件,它声明了我在整个应用程序中使用的一串字符串。我只有字符串,没有别的。我应该使用#define还是静态NSString const? #define有效,但我听说它不是最佳做法。

1 个答案:

答案 0 :(得分:32)

#define是预处理器宏。这意味着它基本上会遍历您的代码并将您的宏替换为您定义的内容。

如果使用const,它将成为指向内存中字符串的指针。它比在任何地方/使用它时分配相同的字符串更有效。

要做到这一点,你需要.h和.m文件。你的.h文件看起来像:

extern NSString * const YOUR_STRING;

你的.m文件:

NSString * const YOUR_STRING = @"your string";