gpt4 book ai didi

objective-c - NSCalendar dateFromComponents : vs NSDateComponents date

转载 作者:行者123 更新时间:2023-12-02 04:35:15 25 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];

方法二:

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/

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