在iOS开发过程中,会遇到声明字符串常量的情景,这时会有两种写法
const NSString * tag1 = @"kXXXXKey";
NSString * const tag2 = @"kXXXXKey";
第一种写法是错误的,const修饰*tag1,tag1是指针,*tag1是指针指向的对象,不可变 第二种写法是正确的,const修饰tag2,tag2是指针,表示指针自身不可变,但其指向的对象可以修改
因为NSString本身是不可变(immutable)的,是指针常量,所以NSString * const有效,const NSString * 是无效的。