经常在iOS中的头文件中看到苹果默认有很多的const修饰的字符串,那么,这些被const修饰的字符串跟平常的字符串有什么不同之处呢?
1,被const修饰过以后,字符串受到了强制保护,可以防止被别人修改。同时,在整个应用程序的内存中,只有一份。
常见使用:
a, const NSString *str = @“这是字符串”;
b, NSString * const str= @"这是字符串";
2,那么这两种写法有什么区别呢?
第一种写法:const修饰的是指针,表示 str是可以指向其他的字符串,也就是 str=@"ss”;
第二种写法:const修饰的是str这个变量,str无法指向其他的字符串,不能重新赋值。
3,在项目中经常这样使用,比如:
新建一个类,专门用户存放常量字符串,比如CZConst,将.h和.m文件中的所有代码都删除,在.h中写上如此代码:
extern NSString * const UMAppKey;
注意:这个主要用来声明有字符串,如果不这样写,那么,在多个类中引入之后,编译的时候,会报重复定义的错误。
在.m文件中写上:
NSString * const UMAppKey = @"43724987fdsajfdafdsaf4234";
注意:.m文件主要用来定义,.h文件用来声明,别的类使用的时候,只能使用.h文件,这样,就能避免重复定义了。系统是允许重复声明的。
可以将CZConst.h文件引入系统的.pch文件,这样,就不必每次使用的时候,都重新导入一遍了。
那么在使用的时候,如图: