NSString真的是不可变的吗?

ale*_*lex 2 iphone objective-c

为什么当我编码我可以做:

NSString *test;

test = @"stack";
test = @"overflow";
Run Code Online (Sandbox Code Playgroud)

没有任何问题,NSString是不是应该是不可改变的?

Lou*_*nco 7

字符串对象是不可变的.您只是将指针更改为其他字符串.


pax*_*blo 7

不可改变的.您没有使用这些语句更改基础字符串,而是创建/使用全新的字符串.指针本身可以根据需要随时更改,但这不是字符串.