Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 为什么下面的代码不将一个字符串附加到另一个字符串?_Objective C - Fatal编程技术网

Objective c 为什么下面的代码不将一个字符串附加到另一个字符串?

Objective c 为什么下面的代码不将一个字符串附加到另一个字符串?,objective-c,Objective C,这是我朋友提出的问题。我已经从互联网上研究了一些代码,但没有帮助,我认为它应该可以工作,这个问题是正确的 NNString *s = [[NNString alloc]initWithString:@"hello"]; [s appendString:@"there"]; NSString是不可变的,您需要使用NSMutableString的实例才能附加到它 NSMutableString *s = [[NSMutableString alloc] initWithString:@

这是我朋友提出的问题。我已经从互联网上研究了一些代码,但没有帮助,我认为它应该可以工作,这个问题是正确的

NNString *s  = [[NNString alloc]initWithString:@"hello"];  
[s appendString:@"there"];  

NSString
是不可变的,您需要使用
NSMutableString
的实例才能附加到它

NSMutableString *s  = [[NSMutableString alloc] initWithString:@"hello"];  
[s appendString:@"there"];  

或者,您可以使用
stringByApendingString:

替换实例,如果您想保持字符串不变,请尝试以下操作:

s = [s stringByAppendingString:@" there"];  

这就像SWIFT中的“let”?
let
创建了一个无法编辑的引用,但它可以引用一个可变或不可变的实例,我们这里讨论的是类以及它为您提供的接口。不,那不一样,我能这样理解吗。NSString创建包含字符串类型数据的容器。一旦我把东西放进容器里,容器就不能再打开了。如果我想更改它,我只能替换容器,但我无法打开容器并更改数据。让我们实际创建一个容器地址,这是不同的事情,因为您应该阅读所使用方法的文档