NSDate* now = [[NSDate alloc] init];
目前正在学习Objective C,而我的书似乎并没有很好地解释这行代码。所以,我知道我们正在声明一个指向NSDate
对象的“现在”指针。该消息似乎使我感到困惑。
如果我是正确的,[NSDate alloc]
正在为 的实例分配一些内存NSDate
,但是在init
做什么?
NSDate* now = [[NSDate alloc] init];
目前正在学习Objective C,而我的书似乎并没有很好地解释这行代码。所以,我知道我们正在声明一个指向NSDate
对象的“现在”指针。该消息似乎使我感到困惑。
如果我是正确的,[NSDate alloc]
正在为 的实例分配一些内存NSDate
,但是在init
做什么?
你是对的alloc
它为一个实例分配内存NSDate
init
做它听起来的样子。它初始化这个新分配的内存。此时,您实际上并不需要知道 init 在内部做什么。
继续学习,当你谈到创建自定义类或子类的主题时,它的作用init
会变得更加清晰。
这很简单......
NSDate* now = [[NSDate alloc] init];
1.alloc 为 NSDate 的实例分配内存,即现在在您的代码中
2.init 使用一些默认值初始化您的实例变量。如果不使用 init 那么您的实例可能包含一些垃圾值,以避免我们通常使用一些默认值初始化对象。