我理解
的不同之处NSMutableString const * myMutableString = [[NSMutableString alloc]initWithString:@"Bar"]
这是一个指向NSString的不可变指针。
然后我们有:
body
这是指向const NSMutableString的指针。 myMutableString的值不应该改变。
为什么可以呢?: [myMutableString追加:@“Foo”];
没有编译器错误,并且它有效。它允许我改变值。
在哪种情况下可以使用常量对象?
谢谢!
答案 0 :(得分:2)
NSMutableString const * myMutableString = [[NSMutableString alloc]initWithString:@"Bar"]
为此您可以更改“myMutableString”的值,因为它指向静态位置,该位置的值可能不同但指向位置不能
所以,如果您遇到类似应用程序基本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";
第二个好处是更改常量的值不会导致重建整个程序。