Objective-C中的常数

我正在开发一个Cocoa应用程序,我正在使用常量NSStrings作为存储我首选项的键名的方法

我知道这是个好主意,因为它允许在必要时轻松更换钥匙。
此外,这是整个“将数据与逻辑分离”的概念

无论如何,有没有一种好方法可以让这些常量在整个应用程序中定义一次

我确信有一种简单而智能的方法,但现在我的类只是重新定义了它们使用的类

您应该创建一个头文件,如

//常数.h
基础\u导出NSString*常量MyFirstConstant;
基金会导出NSString*常量MySecondConstant;
//等等。

(如果您的代码不在混合C/C++环境或其他平台上使用,则可以使用extern而不是FOUNDATION\u EXPORT

可以将此文件包含在使用常量的每个文件中,也可以包含在项目的预编译头中

在.m文件中定义这些常量,如

//Constants.m
NSString*常量[email protected]“FirstConstant”;
NSString*const [email protected]“SecondConstant”;

应将Constants.m添加到应用程序/框架的目标中,以便将其链接到最终产品

使用字符串常量而不是#define‘d常量的优点是,您可以使用指针比较(stringInstance==MyFirstConstant)测试相等性,这比字符串比较([stringInstance isEqualToString:MyFirstConstant])快得多(而且更易于阅读,IMO)

发表评论