object-C中的常數我在開發一個可可粉應用程序,我使用常量NSStrings作為存儲我的首選項的鍵名的方法。我理解這是一個好主意,因為它允許在必要時很容易地改變鍵。另外,這是一個“把你的數據和你的邏輯分開”的整體概念。無論如何,是否有一種為整個應用程序定義一次這些常量的好方法?我確信有一種簡單而明智的方法,但現在我的類只是重新定義它們使用的方法。
3 回答

隔江千里
TA貢獻1906條經驗 獲得超10個贊
您應該創建一個頭文件,如
//?Constants.hFOUNDATION_EXPORT?NSString?*const?MyFirstConstant;FOUNDATION_EXPORT?NSString?*const?MySecondConstant;//etc.
(你可以用extern
而不是FOUNDATION_EXPORT
如果您的代碼不用于混合C/C+環境或其他平臺)
可以將此文件包含在使用常量的每個文件中,也可以包含在項目的預編譯頭中。
在.m文件中定義這些常量,如下所示
//?Constants.mNSString?*const?MyFirstConstant?=?@"FirstConstant";NSString?*const?MySecondConstant?=?@"SecondConstant";
應該將Constants.m添加到應用程序/框架的目標中,以便將其鏈接到最終產品。
使用字符串常量代替#define
D常量是可以使用指針比較來測試等式的(stringInstance == MyFirstConstant
),它比字符串比較快得多([stringInstance isEqualToString:MyFirstConstant]
)

桃花長相依
TA貢獻1860條經驗 獲得超8個贊
// Prefs.h#define PREFS_MY_CONSTANT @"prefs_my_constant"
// Prefs.hextern NSString * const PREFS_MY_CONSTANT;// Prefs.mNSString * const PREFS_MY_CONSTANT = @"prefs_my_constant";

GCT1015
TA貢獻1827條經驗 獲得超4個贊
static
// In your *.m filestatic NSString * const kNSStringConst = @"const value";
static
- 3 回答
- 0 關注
- 572 瀏覽
添加回答
舉報
0/150
提交
取消