objective-c - 指针的用途

标签 objective-c pointers

我刚刚开始使用 Objective C,虽然我的速度和学习曲线还不错(我没有 C 背景)- 我不理解一个概念,它也是 C++ 的一部分 - 指针!

好的 - 我知道指针指向实际变量的物理位置而不是变量本身的值。到底什么时候能派上用场?

此外,何时使用它们,何时不使用它们?

我在 Google 上搜索得够多了,但我遇到的每一个指南似乎都假定我是火箭科学博士。

有人可以用一个简单的例子解释一下吗?

最佳答案

虽然它们当然是 C 指针,但我强烈建议将它们理解为对对象的引用。

您要么创建一个对象,要么从某处接收它并将对该对象的引用存储在一个变量中。

当您将对象的引用传递给某个函数或方法时,此方法可以访问您传递的对象。它不一定必须使用数据副本。如果它对对象的属性进行了更改(只要通过 poperty 声明和内容允许),那么您的引用所指的对象就会被更改。

您当然可以复制它,并在您认为合适的时候继续使用该副本。在这种情况下,原始对象保持不变。

当你真的遇到必须使用 C 风格指针的情况时,你最好退后一步并理解 C。我认为来自 Objecive-C 背景的理解 C 风格指针是不明智的。清理你的思绪,从头开始学习 C,然后在你必须在 Objective-C 项目中处理这些基本数据类型的非常非常罕见的情况下使用新知识。

关于objective-c - 指针的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12070300/

相关文章:

c - 使用 char 指针时如何解决代码错误

ios - [__NSArrayM objectForKeyedSubscript :]: unrecognized selector sent to instance - source code and screenshot attached

objective-c - 2 目标 1 图标名称

c++ 函数参数编辑

c++ - 指针指向 LSB 还是 MSB?

c++ - 不理解示例中的行为 - strcpy() 和函数返回本地数组的地址

objective-c - Objective-C 中的弱引用何时更新为 nil?

ios - NSIndexPath:indexPathForRow:inSection 未能正确初始化

objective-c - NSOutlineView 子类不触发数据源拖放方法

javascript - Hybrid App - 使用 iPhone 数字键盘,我可以添加小数点吗?