代码改变世界

NSString *const 和 const NSString * 的区别

2017-12-20 16:46  Hi,David  阅读(4314)  评论(0编辑  收藏  举报

1.变量存储的指针可变,变量存储的值不可变

//A modifiable pointer to a constant NSString (its value can't be modified)
const NSString * str = @"11";
str = @"22";

 

2.变量存储的值可变,变量存储的指针不可变

//A constant pointer (not modifiable) to an NSString (its value can be modified)
NSString *const str1 = @"33";
str1 = @"44";   //会报错

 

实例截图:

 

总结:

由于NSString是指针变量,因此只要保证NSString类型的变量存储的指针不可变就可以定义一个不可更改的NSString变量,定义方法: NSString *const str = @"111"; 

 

参考链接:

https://stackoverflow.com/questions/22953091/difference-between-nsstring-const-and-const-nsstring