【发布时间】:2014-09-10 19:05:48
【问题描述】:
我想定义NSString 常量并让其中一个引用另一个。例如:
NSString * const kUrlGoogle = @"http://google.com";
NSString * const kUrlApple = @"http://apple.com";
NSString * const kUrlMicrosoft = @"http://microsoft.com";
NSString * const kUrlDefault = kUrlGoogle;
当我尝试这样做时,kUrlDefault 行出现编译时错误:
Initializer 元素不是编译时常量
有没有什么方法可以在不使用宏的情况下将kUrlDefault 分配给上述字符串之一?
这是有用的几个原因:
- 我无需调用
isEqual方法即可测试相等性。 - 如果我更新常量,
kUrlDefault将自动获取新值(与所有常量一样)。 - 将所有常量放在一个文件的同一位置。
【问题讨论】:
-
“我可以测试相等性,而无需调用 isEqual 方法。”不要指望它总是适用于火柴盒。此外,这是一个过早的优化。
-
@Zaph:这只是作为示例提供的,我不打算实际这样做。您是否有指向某个网站的链接,该链接描述了为什么它可能并不总是有效?
标签: ios objective-c nsstring constants