在这行代码中执行的“init”调用是什么?

时间:2013-05-28 04:51:36

标签: objective-c nsdate init

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

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

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

2 个答案:

答案 0 :(得分:0)

你对alloc

是正确的

它为NSDate

的实例分配内存

init听起来像是这样。它初始化这个新分配的内存。此时你并不需要知道init在内部做什么。

继续学习,当您谈到创建自定义类或子类的主题时,init的角色将变得更加清晰。

答案 1 :(得分:0)

这很简单......

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

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

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