-1
NSDate* now = [[NSDate alloc] init];

目前正在学习Objective C,而我的书似乎并没有很好地解释这行代码。所以,我知道我们正在声明一个指向NSDate对象的“现在”指针。该消息似乎使我感到困惑。

如果我是正确的,[NSDate alloc]正在为 的实例分配一些内存NSDate,但是在init做什么?

4

2 回答 2

0

你是对的alloc

它为一个实例分配内存NSDate

init做它听起来的样子。它初始化这个新分配的内存。此时,您实际上并不需要知道 init 在内部做什么。

继续学习,当你谈到创建自定义类或子类的主题时,它的作用init会变得更加清晰。

于 2013-05-28T04:57:00.790 回答
0

这很简单......

NSDate* now = [[NSDate alloc] init];

1.alloc 为 NSDate 的实例分配内存,即现在在您的代码中

2.init 使用一些默认值初始化您的实例变量。如果不使用 init 那么您的实例可能包含一些垃圾值,以避免我们通常使用一些默认值初始化对象。

于 2013-05-28T05:07:13.453 回答