我知道显式分配和初始化对象是很好的做法,但我很困惑为什么在下面的例子中不需要NSDate的实例:
NSDate *now = [NSDate date];
似乎与此相同…
NSDate *now = [[NSDate alloc] init];
我假设date类方法在堆上分配空间,但我只找到了NSDate.h,而不是Apple实际实现该方法的方式。
Apple文档简单地说:"这个方法使用类的默认初始化方法init。"
+[NSDate date]是一个"方便构造函数"。通常情况下,实现看起来与return [[[self alloc] init] autorelease]
非常相似。