如果你不考虑#define,在objective-c项目中声明常量有两种臭名昭著的方法:
// Util.h
extern NSString * const MyConstant;
// Util.m
NSString * const MyConstant = @"value";
或其他直接在头文件中
// Util.h
static NSString *const MyConstant = @"value";
现在,有两个问题:
1)两种方法都可以,第二种方法很方便,因为我只有一个地方可以编辑值。然而,正如我从 Apple .h 文件中看到的那样,第一种方法总是首选,我想知道静态方法是否有任何缺点。
2)查看 Apple 文档,我们经常会遇到很长的常量名称,例如:NSTextInputContextKeyboardSelectionDidChangeNotification。如果您使用这样的长常量名称,您通常会使用什么约定来分配值。如果我想使用描述性的东西,我可以使用@"nsTextInputContextKeyboardSelectionDidChangeNotification",但听起来有点奇怪。