我了解它们之间的差异
NSString * const myString = @"Bar"
这是一个指向 NSString 的不可变指针。
然后我们有:
NSMutableString const * myMutableString = [[NSMutableString alloc]initWithString:@"Bar"]
这是一个指向 const NSMutableString 的指针。 myMutableString 的值不应更改。
为什么可以这样做?: [myMutableString 附加:@"Foo"];
没有编译器错误,并且可以工作。它允许我更改值。
什么情况下可以使用常量对象?
谢谢!
最佳答案
NSMutableString const * myMutableString = [[NSMutableString alloc]initWithString:@"Bar"]
为此,您可以更改“myMutableString”的值,因为它指向静态位置,该位置的值可能不同,但指向位置不能
因此,如果您遇到某种情况,例如应用程序基本 url,则必须定义应用程序中的每个服务调用都相同的 URL,如下所示,
1)最简单的方法:
// Prefs.h
#define APP_BASE_URL @"app_base_url"
2)更好的方法:
// Prefs.h
extern NSString * const APP_BASE_URL;
// Prefs.m
NSString * const APP_BASE_URL = @"app_base_url";
第二个好处是更改常量的值不会导致整个程序的重建。
关于ios - 修改常量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43866806/