我正在开发一个Cocoa应用程序,并且我使用常量NSStrings 作为存储键名的方式来满足我的偏好。
NSString
我知道这是一个好主意,因为它可以在必要时轻松更改密钥。 另外,这是整个“将数据与逻辑分开”的概念。
无论如何,有没有一种好方法可以为整个应用程序定义一次这些常量?
我确信有一种简单而智能的方法,但现在我的课程只是重新定义他们使用的课程。
您应该创建一个头文件,如:
// Constants.h FOUNDATION_EXPORT NSString *const MyFirstConstant; FOUNDATION_EXPORT NSString *const MySecondConstant; //etc.
(如果您的代码不会在混合 C/C++ 环境或其他平台上使用,则可以使用 not。extern)FOUNDATION_EXPORT
extern
FOUNDATION_EXPORT
您可以将此文件包含在每个使用常量的文件中或项目的预编译头文件中。
您可以在如下文件中定义这些常量.m:
.m
// Constants.m NSString *const MyFirstConstant = @"FirstConstant"; NSString *const MySecondConstant = @"SecondConstant";
Constants.m应该添加到您的应用程序/框架的目标中,以便将其链接到最终产品。
Constants.m
使用字符串常量而不是#define‘d 常量的优点是您可以使用指针比较 ( ) 测试相等性stringInstance == MyFirstConstant,这比字符串比较 ( ) 快得多[stringInstanceisEqualToString:MyFirstConstant](并且更易于阅读,IMO)。
#define
stringInstance == MyFirstConstant
[stringInstanceisEqualToString:MyFirstConstant]