gpt4 book ai didi

objective-c - NSCalendar dateFromComponents : vs NSDateComponents date

转载 作者:行者123 更新时间:2023-12-02 21:32:05 26 4
gpt4 key购买 nike

假设我有以下初始化 NSDateComponents 的代码:

NSCalendar *calendar = [NSCalendar currentCalendar];

NSDateComponents *components = [[NSDateComponents alloc] init];
[components setYear:1987];
[components setMonth:3];
[components setDay:17];
[components setHour:14];
[components setMinute:20];
[components setSecond:0];

现在我想将组件转换为 NSDate。看来有两种方法:

方法一:

NSDate *date = [calendar dateFromComponents:components];

方法2:

NSDate *date = [components date];

这两种方法有区别吗?如果是这样,应该使用哪一个,为什么?

最佳答案

NSDate *date = [components date];

相同
NSDate *date = [[components calendar] dateFromComponents:comps];

如果您没有为日期组件分配日历,它会返回nil。您可以通过设置环境变量 NSObjCMessageLoggingEnabled=YES 来验证这一点在项目方案中,并在生成的消息跟踪 (/tmp/msgSends-NNNN) 中观察到调用完全相同的方法。

这意味着您可以调用

NSDate *date = [calendar dateFromComponents:components];

[components setCalendar:calendar];
NSDate *date = [components date];

两种方法之间没有区别

关于objective-c - NSCalendar dateFromComponents : vs NSDateComponents date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22108932/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com