objective-c - 理解数组指针

标签 objective-c ios arrays pointers nsmutablearray

我是 Objective-C 新手,需要有关指针概念的帮助。我写了这段代码:

//myArray is of type NSMutableArray
NSString *objectFromArray = [myArray objectAtIndex:2];
[objectFromArray uppercaseString];

我认为这会更改 myArray[2] 处的字符串,因为我得到了指向它的实际指针。对取消引用的指针的任何更改是否都意味着该位置中的对象发生更改?或者这与“字符串不变性”有关?不管怎样,当我使用 NSLog 并迭代 myArray 时,所有字符串仍然是小写。

最佳答案

Shouldn't any changes to the dereferenced pointer mean that the object in that location changes?

是的,他们会的。但是如果您阅读uppercaseString 的文档,您会发现它不会就地修改字符串。相反,它返回原始字符串的新大写版本。 NSString 上的所有方法都是这样工作的。

您需要一个 NSMutableString 实例才能就地修改其内容。但是 NSMutableString 没有相应的大写方法,因此您必须自己编写它(作为 NSMutableString 上的类别)。

关于objective-c - 理解数组指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7457001/

相关文章:

iPhone关于内存管理的问题

ios - 在运行时更改自动布局

iPad + HTML5 视频标签 + 外部显示问题

PHP MySQL 多个搜索单词使用数组进行单词到单词的翻译

javascript - 如何将字符串拆分()为整数数组

ios - 如何将2个UIpickerView添加到一个UIview中?

ios - Obj-c 表达式错误 - 二进制表达式 ('CGFloat' 的无效操作数(又名 'double’ ))

ios - 使用 CoreBluetooth 读取长特征值

Java 将 Int 转换为 Hex 并将其粘贴到字节数组元素中

iphone - 在完成 block 中保留循环