NSDate - 默认初始化程序如何在堆上分配空间?

Posted

技术标签:

【中文标题】NSDate - 默认初始化程序如何在堆上分配空间?【英文标题】:NSDate - How does the default initializer allocate space on the heap? 【发布时间】:2013-05-03 00:06:43 【问题描述】:

我知道显式分配和初始化对象是一种很好的做法,但我很困惑为什么以下示例中的 NSDate 实例不需要它:

NSDate *now = [NSDate date];

好像和这个一样……

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

我假设 date 类方法在堆上分配空间,但我只找到 NSDate.h 而不是 Apple 实际实现该方法的方式。

Apple 文档简单地说,“此方法使用类的默认初始化方法 init。”

【问题讨论】:

【参考方案1】:

+[NSDate date] 是一个“便利构造函数”。通常,实现看起来与return [[[self alloc] init] autorelease] 非常相似。

【讨论】:

以上是关于NSDate - 默认初始化程序如何在堆上分配空间?的主要内容,如果未能解决你的问题,请参考以下文章

在堆上分配内存还是传递工作内存? [关闭]

进程环境详解---堆分配mallocfree函数详解

Unix系统编程()在堆上分配内存

在 GDB 中,如何找出谁在堆上分配了地址?

java语言中,类的成员变量分配在哪个内存区?

为啥 char[] 在堆栈上,而 char * 在堆上?