为什么在Objective-C中创建新对象时必须使用指针?

时间:2014-07-19 17:00:05

标签: objective-c

我是Objective-C编程的新手,(和C一样),我来自基于Java的编程历史。我在理解何时使用指针以及何时使用变量时遇到一些麻烦。我的问题是:

为什么我要输入此

NSDate *date = [NSDate date];

而不是这个

NSDate date = [NSDate date];

我觉得我不是在实例化对象,而是创建它的地址(或者是同一个东西?)。

据我所知,这会使程序在以后使用传递引用更快,但是有人可以为初学者澄清差异尽可能简单吗?

1 个答案:

答案 0 :(得分:1)

当你分配一个对象时,cpu会在RAM中分配一个名为" free-store memory"的内存。要访问自由存储内存中的对象,必须使用指向对象内存地址的指针。

在Java中,内存仍然分配在RAM上(因为这是低级硬件存储数据的方式),因此不会发生变化。唯一确实改变的是Java隐藏了指针的使用。