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 关注
- 518 浏览
添加回答
举报
0/150
提交
取消