我是Objective-C的新手,需要有关指针概念的帮助。我写了这段代码:
//myArray is of type NSMutableArray
NSString *objectFromArray = [myArray objectAtIndex:2];
[objectFromArray uppercaseString];
我认为这会改变myArray [2]的字符串,因为我得到了它的实际指针。不应该对解除引用的指针进行任何更改意味着该位置中的对象会发生变化吗?或者这与'字符串不变性'有关?无论哪种方式,当我使用NSLog并迭代myArray时,所有字符串仍然是小写的。
答案 0 :(得分:2)
对解除引用的指针的任何更改是否都意味着该位置中的对象发生了变化?
是的,他们愿意。但是,如果您阅读uppercaseString
的文档,您会发现它不会修改字符串。相反,它返回原始字符串的新的大写版本。 NSString
上的所有方法都是这样的。
您需要NSMutableString
的实例才能修改其内容。但NSMutableString
没有相应的大写方法,因此您必须自己编写(作为NSMutableString
上的类别)。
答案 1 :(得分:-1)
当然!!数组中的任何字符串都不会转换为大写字母[objectFromArray uppercaseString];会返回没有收集在任何对象中的大写字符串。 “uppercaseString”不会修改名为... !!
的字符串对象本身