我的项目中有一些字符串,我想将所有字符串放在一个公共文件中,比如常量。
(第一种方法) 在 constants.h 中,我可以这样做:
#define COMMON_STRING @"myString"
或者
(第二种方法)
在常量.h
extern NSString *const COMMON_STRING;
在常数.m
NSString *const COMMON_STRING = @"myString";
哪种方法更好用,为什么?或者我们有其他更好的方法吗?
编辑:
根据那个帖子 extern NSString *const COMMON_STRING; 从记忆的角度来看更好。但是在某处我还读到#define 会将字符串插入所有出现的位置,通过它-乘以内存使用量,除非编译器优化相同的常量字符串出现-就是这种情况。那么不使用#define 有意义吗?
在建议的帖子中,一篇文章只定义了结构,另一篇文章解释了比较,但非常有限,不是我所期望的。如果编译器正在优化相同的常量字符串出现,那么为什么要使用 extern NSString *const COMMON_STRING 而不是#define COMMON_STRING?