如何在Swift中将NSDateComponents转换为DateComponents
我想将NSDateComponents转换为DateComponents。我怎样才能在不强制施法的情况下使用Swift进行转换。没有什么可转换的。只要在以前使用NSDateComponents的地方使用DateComponents即可如何在Swift中将NSDateComponents转换为DateComponents,swift,nsdatecomponents,Swift,Nsdatecomponents,我想将NSDateComponents转换为DateComponents。我怎样才能在不强制施法的情况下使用Swift进行转换。没有什么可转换的。只要在以前使用NSDateComponents的地方使用DateComponents即可 (事实上,您可以使用as从一个转换到另一个,但您永远不需要这样做。您的代码不应包含对Swift 3中NSDATECOMENTS的引用。您可以使用DATECOMENTS来代替。)作为问题有效原因的补充,并举例说明原因: 并非所有API都已转换为DateCompone
(事实上,您可以使用
as
从一个转换到另一个,但您永远不需要这样做。您的代码不应包含对Swift 3中NSDATECOMENTS的引用。您可以使用DATECOMENTS来代替。)作为问题有效原因的补充,并举例说明原因:
并非所有API都已转换为DateComponents。一个例子是Contact框架,其中CNContact/CNMutableContact类的实例属性dates
声明为
open var dates: [CNLabeledValue<NSDateComponents>]
请注意,这不是两个类属性的1:1映射,如果要进行完整映射,则必须查找API。不确定为什么关闭或否决此问题。最好知道原因,因为这是一个在苹果API文档中不知道答案的有效问题。没有可用的公共方法将NSDateComponents转换为DateComponents,我不想强制转换它。@EricAya@matt的答案不完全正确。我在一个项目中尝试过这一点,它迫使我将
NSDateComponent
用作DateComponent错误:无法将“DateComponents”类型的值转换为指定的类型“NSDateComponents”,让x:NSDateComponents=DateComponents()^~~~~~~~~~~~~~~~~~~~作为NSDateComponents@EricAya好的,我的问题的答案是没有公共API可以转换,但是我们只需要替换代码中的用法。仍然不确定为什么这个问题被否决,因为这是一个有效的问题,下面有不同的答案
nsDateComponents.day = dateComponents.day
nsDateComponents.month = dateComponents.month
// etc ...