Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 目标C编程,将消息传递给NSDate_Objective C_Nsdate - Fatal编程技术网

Objective c 目标C编程,将消息传递给NSDate

Objective c 目标C编程,将消息传递给NSDate,objective-c,nsdate,Objective C,Nsdate,我正在阅读objective-C的一本书,遇到了这个示例,使用NSLog语句打印当前日期。我不明白为什么在将日期消息传递给NSDate类之前没有实例化它(alloc和init) NSDate * pointerToIt = [NSDate date]; 在代码下面,另一条消息被传递到此指针 [pointerToIt timeIntervalSince1970]; 我所知道的是,只要指针持有一个类实例的地址,消息就可以发送给它,但该类从未被实例化,消息仍在传递。有人能帮我解释一下吗?这是获取当

我正在阅读objective-C的一本书,遇到了这个示例,使用NSLog语句打印当前日期。我不明白为什么在将日期消息传递给NSDate类之前没有实例化它(alloc和init)

NSDate * pointerToIt = [NSDate date];
在代码下面,另一条消息被传递到此指针

[pointerToIt timeIntervalSince1970];
我所知道的是,只要指针持有一个类实例的地址,消息就可以发送给它,但该类从未被实例化,消息仍在传递。有人能帮我解释一下吗?

这是获取当前日期的一种特殊方式。它是
NSDate
类上的静态方法,执行以下操作:

创建并返回设置为当前日期和时间的新日期。
此方法使用类init的默认初始值设定项方法

您的代码与文档中的代码基本相同:

NSDate *today = [NSDate date];
因此,今天的
对象实际上是隐式正确初始化的。

是获取当前日期的一种特殊方式。它是
NSDate
类上的静态方法,执行以下操作:

创建并返回设置为当前日期和时间的新日期。
此方法使用类init的默认初始值设定项方法

您的代码与文档中的代码基本相同:

NSDate *today = [NSDate date];

因此,今天的
对象实际上是隐式正确初始化的。

[NSDate date]
为您执行了
alloc
init
。如果你参考这本书,你会读到的

创建并返回设置为当前日期和时间的新日期


[NSDate date]
为您完成了
alloc
init
。如果你参考这本书,你会读到的

创建并返回设置为当前日期和时间的新日期


[NSDate date]是类工厂方法。在内部,它看起来像这样:

+ (instancetype)date {
    return [[self alloc] init];
}

[NSDate date]是类工厂方法。在内部,它看起来像这样:

+ (instancetype)date {
    return [[self alloc] init];
}

不,它不使用初始值设定项作为它使用
init
的文档。更正了,谢谢。这两种方法都会产生相同的结果。那么,它前面的小+符号表示该方法为类工厂方法?而且前面有+的所有方法都不需要显式启动,因为它们已经在内部启动了。我说得对吗?+表示该方法是类方法。(不一定是工厂方法。)-表示该方法是一个实例方法。不,它不使用该初始值设定项作为它使用
init
的文档。更正了,谢谢。这两种方法都会产生相同的结果。那么,它前面的小+符号表示该方法为类工厂方法?而且前面有+的所有方法都不需要显式启动,因为它们已经在内部启动了。我说得对吗?+表示该方法是类方法。(不一定是工厂方法。)-表示该方法是实例方法。