Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Swift中将NSDateComponents转换为DateComponents_Swift_Nsdatecomponents - Fatal编程技术网

如何在Swift中将NSDateComponents转换为DateComponents

如何在Swift中将NSDateComponents转换为DateComponents,swift,nsdatecomponents,Swift,Nsdatecomponents,我想将NSDateComponents转换为DateComponents。我怎样才能在不强制施法的情况下使用Swift进行转换。没有什么可转换的。只要在以前使用NSDateComponents的地方使用DateComponents即可 (事实上,您可以使用as从一个转换到另一个,但您永远不需要这样做。您的代码不应包含对Swift 3中NSDATECOMENTS的引用。您可以使用DATECOMENTS来代替。)作为问题有效原因的补充,并举例说明原因: 并非所有API都已转换为DateCompone

我想将NSDateComponents转换为DateComponents。我怎样才能在不强制施法的情况下使用Swift进行转换。

没有什么可转换的。只要在以前使用NSDateComponents的地方使用DateComponents即可


(事实上,您可以使用
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 ...