【发布时间】:2011-09-17 18:42:53
【问题描述】:
我是 Objective-C 的新手,需要指针概念方面的帮助。我已经写了这段代码:
//myArray is of type NSMutableArray
NSString *objectFromArray = [myArray objectAtIndex:2];
[objectFromArray uppercaseString];
我假设这会更改 myArray[2] 处的字符串,因为我得到了指向它的实际指针。对取消引用指针的任何更改不应该意味着该位置的对象发生更改吗?还是这与“字符串不变性”有关?无论哪种方式,当我使用 NSLog 并遍历 myArray 时,所有字符串仍然是小写的。
【问题讨论】:
-
Ole 为您提供所需的答案。但是对于刚接触 ObjC 的人的一些额外指导,我发现将指向 ObjC 对象的指针本身视为 pointers 是不值得的。只需将它们视为“对象”,您可以使用 objc 括号表示法、点表示法等“传递”信息。如果您尝试对它们进行任何指向性的操作(如显式取消引用、指针算术等),这几乎总是错误的方式并且经常会发生坏事。
-
感谢您的提示。之前对指针有一个非常基本的概念,但是在学习了ObjC之后,我觉得我已经忘记了一切:D
-
老实说,这可能是最好的 ;-)
标签: objective-c ios arrays pointers nsmutablearray