我想将NSDateComponents转换为DateComponents。如果没有强制投射,我怎么能在Swift中完成它。
答案 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。