12
我有一個constants.h文件,它聲明瞭我在整個應用程序中使用的一串字符串。我只有字符串,沒有別的。我應該使用#define還是靜態NSString常量? #define的作品,但我聽到它不是最好的做法。iOS#爲全局字符串定義或靜態常量
我有一個constants.h文件,它聲明瞭我在整個應用程序中使用的一串字符串。我只有字符串,沒有別的。我應該使用#define還是靜態NSString常量? #define的作品,但我聽到它不是最好的做法。iOS#爲全局字符串定義或靜態常量
#define
是預處理器宏。這意味着它基本上通過您的代碼並將您的宏替換爲您定義的宏。
如果你使用一個const,它將成爲一個指向內存中字符串的指針。無論何時何地使用相同的字符串,它的效率都會更高。
爲此,您將需要.h和.m文件。您的.h文件中看起來是這樣的:
extern NSString * const YOUR_STRING;
和你.m文件:
NSString * const YOUR_STRING = @"your string";
簡單的用例,編譯器將優化相同的字符串的多個創作反正創建一個常量。但是,對於其他不重要的類,最好有一個常數值,在類加載時初始化一次(例如)。在公開API中暴露公共符號時,Consts也很好。 –
他們將最終被存儲爲可執行文件中的常量字符串,並在內存中... –
如果它的格式如@「this is my string with int%i」,該怎麼辦? – user1802143