我试图通过连接其他NSString实例来实现常量NSString.
以下是我在实现文件中所做的事情:
static NSString *const MY_CONST = @"TEST";
static NSString *const MY_CONCATENATE_CONST = [NSString stringWithFormat:@"STRING %@", MY_CONST];
Run Code Online (Sandbox Code Playgroud)
它导致以下编译错误:Initializer元素不是常量
我想这是因为stringWithFormat没有返回一个常量的NSString,但由于没有其他方法来连接Obj-C中的字符串,我该怎么做?
谢谢你的帮助,
埃里克.
Pat*_*ick 48
我认为必须有办法做到这一点,但我能做的最好的事情是使用#define指令.例如,
// Define the base url as an NSString
#define BASE_URL @"http://www.milhouse.co.uk/"
// Now the derived strings glued by magic
NSString *const kBaseURL = BASE_URL;
NSString *const kStatusURL = BASE_URL @"status.html";
NSString *const kBalanceURL = BASE_URL @"balance.html";
Run Code Online (Sandbox Code Playgroud)
我认为你需要退后一步考虑一下字符串是否需要定义为 const。
显然,该字符串不是常量,因为您试图为其分配一个新值 - 这是不可能的,因为您明确指示编译器使用 const 关键字确保该值没有更改。
如果字符串作为类中的属性驻留,您可以将其设置为只读属性 - 即访问器方法,但没有设置器方法。然后,您就可以在类内部按照您的意愿构造字符串,同时防止调用者更改值。
| 归档时间: |
|
| 查看次数: |
9047 次 |
| 最近记录: |