如何在Swift中将NSDateComponents转换为DateComponents

时间:2016-09-27 19:32:20

标签: swift nsdatecomponents

我想将NSDateComponents转换为DateComponents。如果没有强制投射,我怎么能在Swift中完成它。

2 个答案:

答案 0 :(得分:1)

没有什么可以转换的。只需使用 DateComponents,无论您以前使用过NSDateComponents。

(实际上你可以使用9.3从一个转换为另一个,但是你永远不需要。你的代码应该包含对Swift 3中的NSDateComponents的 no 引用。你使用DateComponents 不是的。)

答案 1 :(得分:0)

作为对问题有效的原因以及原因的一个例子:

并非所有API都已转换为DateComponents。一个示例是Contact框架,其中CNContact / CNMutableContact类的实例属性dates被声明为

open var dates: [CNLabeledValue<NSDateComponents>]

不幸的是,没有内置的方法可以在两者之间进行转换,所以如果你想避免强制转换,你必须设置每个属性你自己:

nsDateComponents.day = dateComponents.day
nsDateComponents.month = dateComponents.month
// etc ...

请注意,这不是两个类的属性的1:1映射,如果要进行完整的映射,则必须查找API。