ios - Objective-C 中的常量

我正在开发 Cocoa应用程序,并且我使用常量 NSStrings 作为存储我偏好的键名的方式。

我知道这是个好主意,因为它可以在必要时轻松更改 key 。
另外,这是整个“将数据与逻辑分开”的概念。

Anyway, is there a good way to make these constants defined once for the whole application?

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

最佳答案

你应该创建一个像这样的头文件:

// Constants.h
FOUNDATION_EXPORT NSString *const MyFirstConstant;
FOUNDATION_EXPORT NSString *const MySecondConstant;
//etc.

(如果您的代码不会在混合 C/C++ 环境或其他平台上使用,您可以使用 extern 代替 FOUNDATION_EXPORT。)

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

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

// Constants.m
NSString *const MyFirstConstant = @"FirstConstant";
NSString *const MySecondConstant = @"SecondConstant";

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

使用字符串常量而不是 #define 的常量的优点是您可以使用更快的指针比较 (stringInstance == MyFirstConstant) 来测试相等性比字符串比较 ([stringInstance isEqualToString:MyF​​irstConstant]) (而且更容易阅读,IMO)。

https://stackoverflow.com/questions/538996/

相关文章:

objective-c - 在 Objective-C 中生成随机数

ios - UITextView 中的占位符

objective-c - 如何从 Swift 调用 Objective-C 代码?

ios - 如何链接到应用商店中的应用

ios - 延迟后如何触发 block ,例如 -performSelector :withObje

ios - 如何在 Objective-C 中创建委托(delegate)?

ios - 如何将 NSString 值转换为 NSData?

objective-c - @class 与 #import

ios - 如何查看iOS版本?

ios - 如何为约束更改设置动画?